请教一下 elasticsearch 中查询中文是怎么查的,添加 ik 分词器那根据官方的说明也有问题
https://github.com/medcl/elasticsearch-analysis-ik
ik_smart 把中华人民共和国国歌分成中华人民共和国,国歌,这样查到的也不是完整的字段,这个地方卡很久了,求指导
1
junzki 2017-06-05 00:33:20 +08:00
改一下词库看看? ik 对词库依赖还是很重的。
|
2
dangyuluo 2017-06-05 01:12:56 +08:00
善用搜索,这个问题我提过了。
总之就是索引时要用 ik_max_word, 搜索时要用 ik_smart。 这样“中华人民共和国国歌”就会以最细粒度成为一个反向查询表。搜索的时候用 ik_smart,可以粗粒度查询。 |
3
bidongliang 2017-06-05 07:23:20 +08:00 via Android
“这样查到的也不是完整的字段”是什么意思,能否再明确一下,一般情况下不建议在索引时和查询时使用不同的分析器。
|
4
knightdf 2017-06-05 10:12:48 +08:00
建 index mapping 的时候指定了 ik 为 analyzer 吗?
|
5
fangch OP @junzki 这个就是默认的 ik,我看那个好像默认配了就起作用.
@dangyuluo 哦哦,谢了,大哥,能给一个问题链接吗,我搜了好多,感觉说的都不一样,所以就懵了,感觉我学的时候好杂,这里去找资料,那里去找资料,都不知道哪个是标准的 @bidongliang 就是搜索不到中华人民共和国国歌这个字段 @knightdf 这个已经指定了,但是好像还是有点问题,还是分词不太完全 |
6
dangyuluo 2017-06-05 13:23:48 +08:00
|
7
hwsdien 2017-06-05 14:23:49 +08:00
用 term 搜索
|
8
bidongliang 2017-06-05 15:23:22 +08:00
你的意思是“搜索不到‘中华人民共和国国歌’这个短语吧”?用 match_phrase 就可以了。
|
9
fangch OP |