全文搜索(full text search)有什么好一点的低成本解决方案?

2022-12-04 09:04:04 +08:00
 ericgui

elastic search ,自己搭建太麻烦了,买服务太贵

实在不行只能买服务了,我可没那功夫搭建

但太贵了

彦祖们能否有什么推荐么

数据量很小,目前只有 15K 条数据,即便将来增长,也不会超过 1M

10065 次点击
所在节点    程序员
62 条回复
shelken
2022-12-04 16:39:22 +08:00
<a href="https://smms.day/image/6vDEFjVZ9tQcMri" target="_blank"><img src="https://s2.loli.net/2022/12/04/6vDEFjVZ9tQcMri.jpg" alt="IMG_0072.jpeg"></a>
shelken
2022-12-04 16:39:35 +08:00
haonie
2022-12-04 17:05:38 +08:00
windows 本地搜索呢?有推荐的开源项目吗? win 自带搜索不好用,listary 、everything 又不能搜索内容,其他的搜索软件也太臃肿,都没有比得上苹果的。
yazinnnn
2022-12-04 18:18:40 +08:00
自建 es 麻烦在哪里....数据量不大直接跑容器里吧
ksc010
2022-12-04 18:19:33 +08:00
ES 用 docker 很容易 一个 docker-composer 配置文件就可以搭建一个集群
Jiajin
2022-12-04 18:52:58 +08:00
es 搭建快的很
documentzhangx66
2022-12-04 19:45:16 +08:00
全文索引的原理,导致其质量与速度,本质就是拼成本,这玩意哪有什么低成本。

你要想低成本,要么速度极慢,要么只做热词。

只做热词会导致非热词信息搜不到,比如某些电商平台,搜历史订单,明明有这个关键词,但就是搜不出来,这就是这个原因。
timnottom
2022-12-04 19:55:21 +08:00
我收藏了好几个,分享给你:

- elasticsearch
- zinc
- meilisearch
- typesense
- sonic


这些大多基于 go, rust 等新兴语言,特别是基于 go 的,占用资源肯定少一些。

不过,要我说,好用的肯定是 es
tairan2006
2022-12-04 20:44:44 +08:00
es 单点搭建简单的很,不知道楼主在说啥
WingPig99
2022-12-04 21:08:40 +08:00
推荐 es
wangfenjin
2022-12-04 21:10:20 +08:00
如果是单机的话,可以用 sqlite3+fts5, 然后我写的这个中文插件 https://github.com/wangfenjin/simple
makdon
2022-12-04 22:50:00 +08:00
如果数据量较小,用的是 Go 的话,可以试试这个
我们这边业务也是 1w 条左右数据,服务启动的时候就读 DB 然后用这个库做内存索引
不过实践发现可能花点钱买个公有云的 elastic search 的会省心很多
https://github.com/blevesearch/bleve
URgoy
2022-12-04 22:52:44 +08:00
Aloento
2022-12-04 23:11:14 +08:00
对于全文搜索,您可以考虑使用 Apache Solr 或 Apache Lucene 。它们都是开源的全文搜索工具,而且比较容易使用。它们都提供了许多强大的功能,包括分词、拼写纠错和结果排序,可以帮助您快速、高效地进行全文搜索。

此外,如果您的数据量很小,您可以考虑使用 SQLite 数据库。SQLite 是一种轻量级的关系数据库,它可以运行在各种平台上,包括桌面和移动设备。它非常容易上手,而且可以满足您的数据量要求,即使将来数据量增长到 1M 。

总而言之,对于您的需求,Apache Solr 或 Apache Lucene 和 SQLite 数据库都是不错的选择。它们都是开源的,易于使用,并且提供了许多强大的功能,可以帮助您进行全文搜索。此外,它们都是低成本的解决方案,可以满足您的需求。
CX
2022-12-04 23:49:08 +08:00
sphinx ?不吃配置,只是搭建维护比较麻烦
magnetar
2022-12-05 10:09:27 +08:00
说下我用过的吧,
sphinx 优点:配置简单,索引快(但是分词太细 2 千万需要 7 分钟左右),最多占用 1g 内存,php 、python 对接方便,缺点:增量更新麻烦,搜索后返回 id 需要走一遍数据库查询,
typesense:我索引到 1 千万的时候崩了,问题应该是内存不够,
zinc 优点:配置简单,不怎么占用内存,语言对接方便,支持大部分 es 的语法,缺点:需要固态硬盘,不知道是不是我配置的问题,占用磁盘空间超级大(有相关配置但是设置了不生效)。
meilisearch:看了文档直接放弃,没有尝试。
sonic:跟 sphinx 差不多,没有尝试
elasticsearch:现在在用的,缺点就是吃内存(也还好,数据没上亿单机还是没什么压力),配置繁琐。
其实很简单的问题,搜索要想玩的花就上 es ,何况你说后面数据量要上 M ,大数据就直接无脑 es 了啊,
jinsongzhao
2022-12-05 12:29:31 +08:00
看来开始遍地开花时期了。数据库自带的; Lucene 的 java 系列; go ; rust; C++应该也有(比如 AnyTxt )。不知道哪家方案接近技术完善了,如果没有出现完善的(多语种支持),那还是最低成本数据库自带的跑跑看了
brader
2022-12-05 15:43:43 +08:00
最低成本的应该还是直接用现有的 mysql 的 full text 索引,我的项目中也在大量使用,这个东西简单使用完全没问题的,你可以先尝试,而且它的尝试成本低到几乎没有。
010203kk
2022-12-06 19:19:18 +08:00
ReSearch--考据级搜索引擎微服务系统
https://github.com/liaoran123/research
javafans
2022-12-17 22:54:47 +08:00
nasuyun.com 不香吗

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

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

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

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

© 2021 V2EX