
mysql 能不能对中文分词检索? 要对 item 条目表下的 detail 字段检索,like 不能满足需求。。有什么方法能最快解决这问题?
能不用 sphinx、els 之类的最好
1 yangguoshuai 2017 年 6 月 20 日 先分词,然后编码(比如类似 base64 替换几个字符) 然后全文搜索。。 |
2 zjsxwc OP 看了下 PostgreSQL 原生支持全文检索,我准备把这个表同步到 PostgreSQL 上来检索。。 https://www.opsdash.com/blog/postgres-full-text-search-golang.html |
3 ming2050 2017 年 6 月 20 日 via iPhone 可以原生中文分词 ngram |
4 ming2050 2017 年 6 月 20 日 via iPhone 很笨拙的算法,但很有用 |
5 zwh8800 2017 年 6 月 20 日 用专业的工具做专业的事,分词搜索还是用 es 吧 |
9 wdlth 2017 年 6 月 20 日 我们是用 Solr 和 ES 来做的,这些更专业,也更好扩展。 |
11 aqqwiyth 2017 年 6 月 20 日 全转成拼音。。。走 fulltext index 逃:) |
12 PythonAnswer 2017 年 6 月 21 日 via Android pg 能满足个人需求吗?以前折腾过 es 感觉还是麻烦了 |
13 zjsxwc OP 原来 mysql 本身就支持中文分词与全文搜索,我就不折腾了。 https://dev.mysql.com/doc/refman/5.7/en/fulltext-natural-language.html |
14 dangyuluo 2017 年 6 月 21 日 上 ES,免费的没看到有更简单的方案的了。 |
16 reus 2017 年 6 月 21 日 用 pg_trgm 扩展,建 gist 或者 gin 索引也差不多了 |
17 reus 2017 年 6 月 21 日 没看到是中文,那不能用 pg_trgm |
18 KalaSearch 2020 年 9 月 5 日 MySQL 和 PG 本身都支持全文索引和分词,分词的方式有直接切 ngram (N 可选,索引会大 N 倍)或者用一些分词的插件。但问题是 MySQL 和 PG 都不是设计用来做搜索的,因此非要强用会比较拧巴。 而 ES 有不少分词用的插件,比较各种分词的效果(索引分词效果和搜索分词效果)会需要比较多的上下文知识。通常 Analyzer 和 Query analyzer 必须用同样的分词器,但也会造成有的时候某个词就是搜不出来的情况。 预算允许的话,自荐下我们做的卡拉搜索,啥也不用配置,接上 API 瞬间开搜。速度在我们的 benchmark 上比优化过的 ES 还快 10 倍左右 |