
用 es 搜索确实很好用,但是对于一些小数据量的搜索,有没有其他方案?
直接查 db 的话对于一些复杂查询还是不友好。
对于几千几万条的数据直接初始化到内存中进行搜索,可行么?
1 w2exzz 2018-11-12 10:31:51 +08:00 同求…… 也有这样的需求 |
2 luozic 2018-11-12 10:31:52 +08:00 solr 或者直接上 postgresql 加插件 |
3 mumbler 2018-11-12 10:33:55 +08:00 直接用阿里云的开放搜索 |
4 orangeade 2018-11-12 10:40:59 +08:00 mysql 有全文索引了 不过生产环境实践的例子还比较少 |
5 alwayshere 2018-11-12 10:44:51 +08:00 以前用的 xunsearch,后来转 ES |
6 leriou 2018-11-12 13:35:39 +08:00 全文索引 mongodb 啊 |
7 baijunyao 2018-11-12 13:49:55 +08:00 php 的话可以试试 TNTSearch ; https://baijunyao.com/article/154 |
8 mnhkahn 2018-11-12 14:09:05 +08:00 boltdb |
9 simapple 2018-11-12 14:13:19 +08:00 xunsearch 或者 sphinx 或者直接用 mysql |
10 v2dead 2018-11-12 14:46:50 +08:00 之前用 golang 写过一个内部用的文档检索,用的 github.com/go-ego/riot,还行, 但是有另外一个关联项目 github.com/huichen/wukong 不知道怎么样,riot 看起来比较新一点而且更新似乎还算活跃。 |
11 kwklover 2018-11-12 15:18:47 +08:00 这个要看什么类型的数据吧,类似 ES 之类的工具适合文本比较多的场景,其他的数据检索可能 SQL 更好吧。 |
12 gsralex 2018-11-12 15:22:58 +08:00 为什么没人回答 lucene ? |
13 chnyang 2018-11-12 15:25:35 +08:00 sphinx+mysql 轻量级方案 |
14 kslr 2018-11-12 15:28:50 +08:00 买第三方公司的,比如 algolia |
16 janxin 2018-11-12 15:30:46 +08:00 数据量小直接用 PostgreSQL ? |
18 gsralex 2018-11-12 15:33:14 +08:00 @DeadLion 是啊,所以才说为什么不直接用 lucene,在没有 es 的时候,或者 es 没有流行起来的时候,我们都是用 lucene+客户端分片。 |
19 DeadLion OP/div> 2018-11-12 15:37:16 +08:00 @gsralex es 已经简化 lucene 了,但是他们本身是用于大数据情况下能发挥出最大性能。 在数据量比较小的情况下,有没有更轻量级的同类应用或者方案之类的。 |
20 gsralex 2018-11-12 15:39:16 +08:00 首先你的搜索是什么样的,是 b+数索引无法满足吗的那种,比如乱序查询。A、B、C 三个条件,AB 查,BC 查,AC 查,C 查之类的吗? |
21 gsralex 2018-11-12 15:40:34 +08:00 数据量很小指的是多小?“几千几万条”?你可以根据场景在内存中加入前缀树之类的数据结构的。 |
22 DeadLion OP @gsralex 比如说相关性权重分之类的 多词匹配啊 可以各种复合条件查询啊 geopoint 类型之类的( mysql 最新版好像支持了,不知道能支持到什么程度) |
24 tt67wq 2018-11-12 17:04:53 +08:00 自己做个分词,然后存 redis 里面。。。 |
26 mmdsun 2018-11-12 23:11:28 +08:00 via Android solr ? |
29 pc10201 2018-11-15 09:39:19 +08:00 阿里云日志服务,按量付费,很划算 |