现在的模糊查询大家都使用什么解决方案?

2022-10-13 08:09:50 +08:00
 Weixiao0725
假设我有很多文本,给定一段模糊的关键字,查询文本所在的文章和上下文,请问目前有什么合适的查询和存储方案吗?目前已知比较成熟的是基于 elastic search ?
5336 次点击
所在节点    程序员
27 条回复
zzzzzzzzzy
2022-10-13 08:39:51 +08:00
看你数据量,你用 redis 也能做
XCFOX
2022-10-13 08:58:12 +08:00
Weixiao0725
2022-10-13 09:08:09 +08:00
@XCFOX 请问这个支持中文查询吗?
Weixiao0725
2022-10-13 09:08:38 +08:00
@zzzzzzzzzy 数据量大概不到 100G 的文本
demoshengxw
2022-10-13 09:23:16 +08:00
方便还是还是 es ,做好分词直接查就好了
hyqCrystal
2022-10-13 09:27:55 +08:00
数据量不多的话 mysql 好像也支持了。多的话 上 es 吧
jiangbo212
2022-10-13 09:37:11 +08:00
最近在研究 meilisearch, 你这个数据量感觉在它的查询临界点,可能查询速度相比于官网的会慢点。官网显示是支持中文查询的,相比于 es ,易用性强一点
limbo0
2022-10-13 09:57:49 +08:00
生产可以用 es, 玩玩可以用 meilisearch
dddd1919
2022-10-13 10:04:17 +08:00
elastcisearch
apache solr ,文本搜索不错
lmshl
2022-10-13 10:24:58 +08:00
需要相关性和 rank 就走 ES ,不需要的话 PostgreSQL 等数据库内置的全文检索也能做
lmshl
2022-10-13 10:26:48 +08:00
全文检索引擎几乎是不区分语言的,你需要一款分词器,写入的时候提前分好词向量(一般会带有 for index 选项),查询的时候也是(一般会带有 for search 选项)。然后俩词向量去 match
xuelu520
2022-10-13 10:35:47 +08:00
分词+es ,基本满足你的需求
killva4624
2022-10-13 10:37:12 +08:00
不考虑成本的情况下 ES 最快
samin
2022-10-13 10:39:08 +08:00
@hyqCrystal 请问这个量的定义是 ? 边界值是多少 ? 以及对机器性能综合考虑,如何取舍,有经验之谈否 ?
dayeye2006199
2022-10-13 10:42:52 +08:00
qingshuang
2022-10-13 11:09:31 +08:00
模糊查询真的很烦,用 MYSQL 不走索引,用 ES 的时候因为分词的原因老是查不到被客户投诉。
例如客户某个商品编码是 CZ101 就老在那问 我搜 Z1 为什么搜不到啊
这种大家是怎么解决的呢??
看了下 ES 里的几种解决方案,性能都特别差
dzdh
2022-10-13 11:23:22 +08:00
轻量级搜索建议 zincsearch ,兼容 es 部分语法
algalia 小规模用费用还是能承受的
lmshl
2022-10-13 11:32:47 +08:00
sadfQED2
2022-10-13 12:19:31 +08:00
@qingshuang es 直接单字符分词
winglight2016
2022-10-13 12:32:56 +08:00
要看你的需求是模糊查询,比如“like %xxx%”,还是语义查询,比如“天气怎么样”,还有语言、分词策略,相似度、全文检索的区别。

如果是整篇文章的部分内容(精确、少量词汇),ES 比较适合。长句子没有什么特别好的办法,即使语义查找,也有句子长度的限制。

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

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

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

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

© 2021 V2EX