sphinx搜索引擎中文分词匹配规则说明

   sphinx中文分词的检索规则是以最大匹配来提取的,这无凝会使被最大匹配所包含的其它分词不会被sphinx提取。

    例如:假设分词库中有“设备”、“通用”、“通用设备”、“通”、“用”、“设”、“备”等汉字及词组,以下规则成立:

    1.如果被检索的索引中存在有“通用设备”和“通用”、“设备”的文档(doc),这时用“通用设备”这个词搜索时只会返回与“通用设备”有关的doc,而只包含“通用”、“设备”、“通”、“用”、“设”、“备”的doc不会被匹配;如果索引中有只包含“通用”或“设备”(而非“通用设备”)的doc,则用“通用”或“设备”可以检索它们,用“通用设备”则检索不到。

    2.用“设备”是找不到包含有“通用设备”的doc的,如果想用“设备”和“通用”等找到包含“通用设备”的doc,则需要删除分词库中的“通用设备”,保留“通用”、“设备”即可。

 

  实际运用举例:在以上假设的分词库条件下,在SetMatchMode为SPH_MATCH_ANY模式下,用“通用<空格>设备”能查找到只包含“通用”或“设备”的doc,用“通用设备”只能搜索到包含有“通用设备”的doc。

    以上的匹配规则是我在使用过程中总结出来的,在coreseek和sphinx-for-chinese中都如此,不知是否有误解的地方,希望大虾们能帮忙指正。

 

分词算法参考文章:LibMMSeg mmseg分词库生成说明

你可能感兴趣的:(sphinx搜索引擎中文分词匹配规则说明)