最近在看全文检索+分词,头都大了。

2015-02-13 20:40:17 +08:00
 ota

like不能索引,但模糊搜索是非常有必要的,比如搜索2ex,你想结果中会包含v2ex,这比较符合需求是吧。

现在尝试了几个,mysql-ftppc , sphinx 等。无果,主要还是词库不行。比如sphinx for chinese,词库没办法实现复合分词,意味着,搜索 特别申明 有结果,单独搜索 申明 没结果的尴尬。这彻底打消了我想加入智能学习的方案,来对词库进行增量。

P.S 有人吐槽,你不会直接用coreseek啊!不能用,不要问原因。

数据库是mysql,条目大概4w。算小型应用,如果不丢失模糊搜索,又能顺利索引呢?查阅了一些文章,说是建立反向索引+缓存,索引词,连续词,以及句子。然后缓存热门。

搞了几天了。技术和运维也头大了。

实在搞不定,我也只能砸硬件了。不研究这玩意了。主要也是实验性质,为以后项目策略留个备胎,涨点经验。真心不想遇到事情就硬件升级,说真的,无非就是增加一台mysql读而已。但技术不会有太大进步。嘛,我有点太考虑远期目标了。

话说aws的cloudsearch是虾米玩意?这东西是所谓的云搜索?让第三方托管?这延迟。。。说是堪称毫秒级别的,不过走外网的吧。这玩意能有多少实用性?

3398 次点击
所在节点    问与答
13 条回复
aszxqw
2015-02-13 20:48:56 +08:00
为什么搜索2ex结果就得出来v2ex?
如果真的需求是这样的话,就搞个同义词词典呗。
binux
2015-02-13 20:49:04 +08:00
『比如搜索2ex,你想结果中会包含v2ex,这比较符合需求是吧』
不是吧
aszxqw
2015-02-13 20:49:16 +08:00
至少我百度2ex了没出来v2ex
ota
2015-02-13 20:54:25 +08:00
@aszxqw coreseek可以实现同义词,来达到复合分词的效果。不过有一些原因,无法使用coreseek。
还有其他解决方案不?当前在摸索mroonga,分词方法太多了。正在尝试。
@binux 好吧,我这个例子有些脑残。比如ffer,我想结果里包含offer。这不算反人类的要求吧。话说用惯了like后,突然告诉我分词库依赖,我实在无法接受。
decken
2015-02-13 21:00:42 +08:00
@aszxqw
放狗搜 2ex也没出来v2ex
ota
2015-02-13 21:03:06 +08:00
@decken 比如搜索 建的更
百度似乎结果更本地化,但并不一定是要的结果,比如 “建设 建设得 建设+更加” 很多不是连续性的。
谷歌对这类片段的没啥意义的词似乎倾向于作为单个分词处理,搜索结果更多的是“建的更”,时不时还发现有“bigram”类型的,“建的 and 的更”,多数也比较符合要求。感觉谷歌更贴切想要的结果。
firldlove
2015-02-13 22:16:50 +08:00
Elasticsearch非常好用
xi4oh4o
2015-02-13 22:55:47 +08:00
coreseek 为什么不能用呢?
Elastisearch + jdbc river + ik
em70
2015-02-13 23:34:28 +08:00
才4W,用like有多大问题
ota
2015-02-14 06:11:19 +08:00
@em70 不光是只有4w,而且机器用的是1650 v3 ddr4 ssd s3700
问题就是搜索非常频繁。流量很大,虽然站小库也小。
em70
2015-02-14 07:33:01 +08:00
@ota 测试过吗,like需要多长时间,搜索关键词集中吗,如果很集中加缓存就行了。

你得分析一下需求,这种2ex搜索v2ex的场景是否频繁发生?如果只是极端案例,可以用MySQL全文索引,先match搜索,如果搜索不到再用like,并缓存
sunsol
2015-02-14 08:26:13 +08:00
条目才4w,直接grep就行了。
sunsol
2015-02-14 08:29:55 +08:00
如果条目经常更新同时担心效率的话,就用sqlite装载为内存数据库,直接用like简单粗暴。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/170814

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX