analysis-ik
analysis-ik copied to clipboard
ik_smart的结果不是ik_max_word的子集
版本1.8,ES版本2.2 没有配置任何自定义词典 如果使用match_phrase作为查询语句 index使用ik_max_word,查询使用ik_smart。
"match": {
"sentence": {
"query": "在电池内部也未发现明显破损的痕迹",
"slop":2,
"type": "phrase",
"analyzer": "ik_smart"
}
}
使用ik_smart无法查询到这个句子。 看了一下主要是因为ik_smart的分词结果并不是ik_max_word的子集。 ik_smart把 "token": "未"拆出来了。而ik_max_word没有。
目前不一定是子集
这个问题从很早的版本就一直有,建议能否修一下;因为一般ik_smart用作search,分词结果不是子集很尴尬。
我们也发现这个问题了, @medcl 能否帮忙说明下为什么会有这种情况,以及什么时候会有这种情况吗?
@hufuman 因为是两种分词算法,如果要支持的话,需要将 iksamrt 的也算一篇,再合并,性能应该要降低
@medcl 大神,最近使用也遇到了这种问题,主要是使用Ik_smart 作为分词器进行关键词提取,然后通过关键词去查询,结果发现对于预期文档无法查询出来,目前遇到的ik_smart分出来的CN_CHAR 在ik(ik_max_word)下没有分出来,看上面的回复似乎也是这个情况。我能否在使用ik_smart分词的时候通过type过滤掉CN_CHAR的结果来保证剩下来的分词结果是ik分词的子集呢?
同样遇到这个问题,请问有办法解决吗
关注,同样遇到 ik_max_word 分成 10|支
,但 ik_smart 给出 10支
的问题了。之前一直以为是子集,于是索引用 ik_max_word,查询用 ik_smart
同样遇到这个问题了, 有解决的吗
目前最好,前后使用同一套,建索引用ik_max_word, query也使用ik_max_word
原来 ik_smart 的结果不是 ik_max_word 的子集。索引用 ik_max_word,查询用 ik_smart 时,就有可能搜不到结果,请问有什么好的处理方法吗?
原来 ik_smart 的结果不是 ik_max_word 的子集。索引用 ik_max_word,查询用 ik_smart 时,就有可能搜不到结果,请问有什么好的处理方法吗?
都用 ik_max_word
,这样分词和分析器是一致的
原来 ik_smart 的结果不是 ik_max_word 的子集。索引用 ik_max_word,查询用 ik_smart 时,就有可能搜不到结果,请问有什么好的处理方法吗?
都用
ik_max_word
,这样分词和分析器是一致的
但我不想在查询时拆分后的词项包含重复的字