现在站点的内容到达了百万的量,突然发现原来基于 like 的站内搜索已经奇慢无比了,在网上搜了一下好像Sphinx
是一种可行的方案,但还是有些纠结。希望大家帮忙提供一下思路
1
miaotaizi 2016-07-26 17:37:19 +08:00
xunsearch
|
2
dong3580 2016-07-26 17:41:16 +08:00
solr
|
3
jugelizi 2016-07-26 17:42:32 +08:00
代码可以参考 phpcms 的 sphinx
|
4
acrisliu 2016-07-26 17:48:32 +08:00
elasticsearch
|
8
2owe 2016-07-26 17:59:29 +08:00
用过 Coreseek ,基于 Sphinx ,有索引大小限制: 4G ,超过的话得自己搭分布式。官网最近挂了,但网上还能找到很多资料,用起来难度不大。
我用的数据源是 MySQL ,索引的字段内容都不大。 关于使用,我觉得用起来还是挺简单的。用的 PHP 哈。其实代码实现上, XunSearch , Solr , Elestic 都差不多。 关于搜索结果,一看分词。 Coreseek 自带中文分词,我觉得用起来还行(比 XunSearch 自带的好一点), Apache 系的这俩没正式用过,听说分词效果可以调到不错的样子。二看条件过滤, Coreseek 用起来简直像在用搜索速度快很多的 MySQL 。话说,别的用起来也差不多吧。 关于资源占用,感觉内存占用不高,与量有关,与实体索引文件对比大约是: 1vs1 。 === 关于搜索的话题,我也仅仅是浅尝辄止,欢迎讨论哈。 |
9
wannianma OP @sinux 做科研的人其实整理除了一些不错的中文词库,中科院的 ICTCLAS 之前用过听不错。但是中文新词更新太快,词库根本没法做到百分百覆盖
|
11
HarveyDent 2016-07-26 18:06:26 +08:00
我们用的是阿里云提供的搜索。
|
12
lijinma 2016-07-26 18:14:38 +08:00
有钱可以用 阿里云 的 OpenSearch
|
13
xujif 2016-07-26 18:16:41 +08:00 1
百万级别直接用数据库的分词搜索足够。 mysql 的 match against pg 的 ts_query
|
15
xiaoz 2016-07-26 18:29:03 +08:00 via iPhone
反代谷歌, site 搜索
|
18
tracymcladdy 2016-07-26 18:58:57 +08:00
solr+1
|
19
9nix00 2016-07-26 19:11:58 +08:00
百万这个级别,如果是一般的网站应用,单台 sphinx+redis 毫无压力。
后面如果还会有爆发到上亿规模,还是老老实实上 es 吧。 |
20
wmttom 2016-07-26 20:13:53 +08:00
elasticsearch + 1
|
21
rale 2016-07-26 20:20:13 +08:00
elasticsearch + 1
|
22
lyc1116 2016-07-26 20:53:30 +08:00
solr, 或者可以试试 AWS 的 elasticsearch ,但是中国区还不支持。
|
23
pango 2016-07-26 21:57:53 +08:00
搭车问一下繁体中文(台湾)有没有什么好的分词词库,最好直接能拿来搭配 sphinx 的 python api 用的?
|
24
batis25 2016-07-26 22:24:59 +08:00
elasticsearch
|
25
laravel 2016-07-26 22:51:46 +08:00
elasticsearch + 1
|
26
dodo2012 2016-07-27 01:04:51 +08:00
es+1
|
27
strwei 2016-07-27 02:21:11 +08:00
sphinx+1
|
28
kn007 2016-07-27 08:31:04 +08:00
mark ,用过 sphinx ,一般
|
29
tomoya92 2016-07-27 09:10:50 +08:00
|
30
lszxlong 2016-07-27 09:12:49 +08:00
elasticsearch 好用,非常方便
|
32
simapple 2016-07-27 09:18:00 +08:00
mysql 5.7 innodb 支持中文全文索引
|
33
nightspirit 2016-07-27 09:32:50 +08:00
mysql 5.6 就支持全文索引了
|
34
lawmil 2016-07-27 10:14:14 +08:00
elasticsearch 这个比较靠谱
|
35
dqh3000 2016-07-27 10:18:26 +08:00
|
36
tabris17 2016-07-27 10:26:47 +08:00
elasticsearch + 2
|
37
mrytsr 2016-07-27 10:30:28 +08:00 via Android
es
|
39
server 2016-07-27 10:45:18 +08:00
es 吧,给你提供的不仅仅是全文检索
|
40
huangzxx 2016-07-27 11:02:15 +08:00
elasticsearch 吧
|
41
defunct9 2016-07-27 11:16:04 +08:00
|
42
ljbha007 2016-07-27 11:20:34 +08:00
中小型网站用 postgresql 自带的 fts 配合中文分词插件就够了
|
43
derek80 2016-07-27 12:27:30 +08:00
elasticsearch +1
|
44
towser 2016-07-27 13:21:36 +08:00
千万级 coreseek
更多 elasticsearch |
45
hwsdien 2016-07-27 13:33:34 +08:00
直接上 Elasticsearch
|
46
minongbang 2016-07-27 14:05:27 +08:00
http://itzdm.com/ 我这个用的 xunsearch
|
47
hyiier 2016-07-27 14:12:45 +08:00
xunsearch 不需要解决中文分词的问题,我的网站就是用 xunsearch 做的全站搜索 www.yii-china.com 可以来看看效果
|
48
fengkuok 2016-07-27 14:22:34 +08:00
百万级别难道没人用 PostgreSQL 的全文检索吗?当然,一次性到位的话还是用 ES 靠谱。
|
49
Reign 2016-07-27 14:29:28 +08:00 via Android 1
说句 v2 政治不正确的话,我一直觉得 elasticsearch 真的是炒作出来的东西,坑实在太多,我每次用都气的想把我的显示器砸了
|
52
fork3rt 2016-07-27 15:09:36 +08:00
sphinx 挺好用的,文档也全。
|
53
slixurd 2016-07-27 15:19:20 +08:00
@defunct9
因为 Lucene 里面没有 Type 这种东西, ElasticSearch 的 Type 实际上是在整个搜索的外层加了个一个 BooleanQuery ,然后把 Type 作为一个 Filter 条件放进去搜索的伪 Type ,另外由于 5_4_x 的 BUG ,会导致性能变差大概 20%( 5_5 修复了这个问题 |
55
tianshiyeben 2016-07-27 16:42:43 +08:00
elasticsearch
|
56
wuhang89 2016-07-27 20:58:49 +08:00
elasticsearch+1
|
57
jimmy0017 2016-07-27 21:01:42 +08:00
elasticsearch 不错。但没试过
|
58
zwh8800 2016-07-27 22:22:02 +08:00
elasticsearch 不错, RESTful 的 api ,用着很舒服
|
59
fire5 2016-07-27 22:30:23 +08:00
Elasticsearch
|
60
loveyu 2016-07-27 22:44:41 +08:00
Elasticsearch 面对产品神奇的需求就是个渣渣
|
63
jason19659 2016-07-28 10:02:02 +08:00
elastic 5.0
|
64
kwklover 2018-01-02 14:31:29 +08:00
可以试试搜易站内搜索引擎 http://www.searcheasy.net
完全无需开发,点点鼠标完成站内搜索 |
65
echope 2018-11-19 17:27:35 +08:00
没想到两年后用 es...
|