现在站点的内容到达了百万的量,突然发现原来基于 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 ![]() 百万级别直接用数据库的分词搜索足够。 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 ![]() 说句 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... |