上亿数据,如何完成快速检索

218 天前
 joker2026

针对上亿数据,根据其中一个字段或两字字段进行搜索模糊查询,一般使用什么中间件或者搜索方法? 不拘泥于言,不拘泥于框架,请大神各抒己见。当然 php 、java 这种常见的语言,参考意义比较大,谢谢

2952 次点击
所在节点    程序员
17 条回复
locoz
218 天前
elastic search
netnr
217 天前
如果搜索结果是返回少量数据, ClickHouse 秒出
insmoin
217 天前
全文搜索引擎
redtech
217 天前
也可以用 meilisearch
dusu
217 天前
manticoresearch
Rocketer
217 天前
@netnr 秒也太慢了🤣

超过 100 毫秒用户体验就算差了
GeorgeWai
217 天前
es ,ch 都可以,关键还是在于硬件😄
missuo
217 天前
clickhouse yyds
zhuzhibin
217 天前
插个话 es 的全模糊 wildcard 有啥替代方案 性能太差了 上次有过一次把单节点 CPU 干满了 大量查询导致 search 线程池也阻塞满了
matrix1010
217 天前
@zhuzhibin N-gram 空间换时间,一般来说 2gram 或 3gram 效果都很不错, 你也可以两个加一起。比如 google code search 就是 trigram: https://github.com/google/zoekt
Sakura0Tears
217 天前
只会 Excel 难蚌
matrix1010
217 天前
owen800q
217 天前
Serverless 版本的 mongodb, 别说一亿,100 亿都没问题
bjzhush
217 天前
你缺了很多条件,比如配备的硬件,QPS ,响应时间要求
我说个我做过的单机版的,10 年前了,拿 sphinx 搞的,大概 3-5 亿条记录,印象中响应是 500 毫秒内
dlmy
217 天前
我司国庆之前用 32G 内存的服务器,压测了单机版的 ClickHouse ,数据可以参考一下:

扫描行数:530,000,000
耗时(秒):0.942
查询列数:2
结果行数:46
zhuzhibin
217 天前
matrix1010
217 天前
@zhuzhibin 看了一眼 es 的文档,wildcard 类型已经是通过 trigram 来优化了。如果用 wildcard 类型 cpu 还高可能就要考虑一下别的方法 https://www.elastic.co/cn/blog/find-strings-within-strings-faster-with-the-new-elasticsearch-wildcard-field

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

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

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

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

© 2021 V2EX