ik_max_word ik_smart 区别 和 单字 查询 不到问题

ik_smart:分词的时候只分一次,句子里面的每个字只会出现一次。 比如:中华人民共和国国歌

入上图,分成:中华人民共和国 国歌 2 部分。每个字都自出现了一次。(我指的每一个位置 的子。 2个国 位置不同,是2 个字)

ik_max_word:句子的字可以反复出现。 只要在词库里面出现过的 就拆分出来。如果没有出现的单字。如果已经在词里面出现过,那么这个就不会以单字的形势出现。

一般我们用 ik_max_word  。但是 ik_max_word   不是每一个单字都有,比如上面 搜索 中 ,肯定搜索不到,但是,搜索单个字的实际意义不是很大。有些时候确实很重要。我们看看下面的例子。

原始数据叫做蛋炒饭,分词以后是 蛋炒饭 和 炒饭,没有饭这个单字,直接搜索饭搜索不到结果。 

在看看这个: 这个明显 就有 酒。

 综上,有些时候我们还是需要 收单个字的 。 所以我们可以 个我们搜索的这个字段建立一个 2级字段。差的时候这个字段和2 级字段一起查询。原来的分词字段个2级字段加分。

具体做法参看下面的文章的第 42 条 https://www.cnblogs.com/cxygg/p/9471372.html  ,这个是建立2级字段。

查询的时候参考:https://www.cnblogs.com/cxygg/p/9538596.html 的 22 条 。平衡 精确度和召回率。但是这个情况2 个主查询和加分查询都应该使用macth。

原文地址:https://www.cnblogs.com/cxygg/p/9772871.html