更新时间:2018-01-22 10:01
分词是搜索引擎中一个基础但重要的组件,分词的结果直接影响搜索效果。由于业务场景的多样,同一个短语在不同的业务、不同的语境下,其语义可能会不一样,期望分词的结果也不一样。为此,OpenSearch除了提供面向通用领域的基础分词器外,还提供了面向特定领域的分词器,如面向电商领域的电商分词器等。为了更好的满足用户的业务需求,OpenSearch可以让用户在系统提供的基础分词器的基础上,通过结合干预词条的形式创建自定义分词器。在应用的索引字段的分词器中选择使用相应的分词器,以达到干预索引和查询时分词结果,确保搜索结果的质量。
目前,系统支持两种类型的干预词条:语义实体和语义切分。
这类干预词条主要用于一些系统尚未识别的实体词,干预后,该词的切分总是能保持一致,不受其所在的上下文影响。
实体词1
实体词2
干预后,“分词器”和“开放搜索”不管出现什么样的上下文中,都会被当做独立的语义实体,系统对它们还会进一步切分,例如:“分词器”可能会保留原词,而“开放搜索”可能会被进一步切分成“开放“和“搜索”两个更细粒度的词。
分词器
开放搜索
这种类型的干预词条用于指定在特定上下文中的短语的切分方式,而不影响该短语在其他上下文中的切分方式。
短语 => 短 语
干预后,当语句中完整的出现短语“语义切分干预词条”时,系统首先会按照词条对其切分成“语义”、“切分”和“干预词条”三个子短语,然后对子短语分别进行更细粒度的切分。这样可以确保在查询“语义”或者“切分”和“干预词条”等子短语时能召回改文档。
语义切分干预词条 => 语义 切分 干预词条
语义切分干预词条中,key和value在去掉空格后,内容需相同;示例如下:
不正确的词条 => 错误 的 词条
正确的词条 => 正确 的 词条
第1个词条中,key和value去掉空格后,内容不一致,因此是不符合规范的词条。
key中不能包含有空格;示例如下:
不正确 词条 => 不 正确 词条
正确词条 => 正确 词条
第1个词条,key中包含了空格(“ “),因此是不符合规范的词条。
key的内容不能为同一个干预词典中其他词条value中的一部分;示例如下:
自定义分词器 => 自定义 分词器
分词器
分词
第2个词条的key的内容“分词器”,是第1个词条value中的一部分,因此第2个词条是不符合规范的。但第3条词条是符合规范的
创建自定义分词器——修改应用结构(分词方式更改为自定义分词器)——索引重建生效自定义分词器效果
1.在应用列表左侧,找到“高级配置”,选择“自定义分词器”,点击“创建分词器”进行规则添加:
2.创建分词器,按截图中的格式,自定义分词器的名称(示例中创建为了”test”),以及配置需要干预的文档内容以及需要拆分的term(可以配置多条),点击“创建”:
3.创建好名称为“test”的自定义分词器后,等待分词器生效:
4.分词器生效后,可以进行分词测试,测试分词器生效后干预词条的结果:
5.分词器生效后,点击应用管理,修改应用结构:
6.在索引字段配置分词方式时,需要指定自定义分词器,索引重建后才会生效该分词器:
以“乒乓球拍卖多少”的文档内容为例,当使用“中文——通用分词时”搜索时出现badcase, 与预期不符,如图:按上述流程添加“test”自定义分词器,并修改应用结构,索引重建后,拆分的term与干预后一致,如图:
在文档使用中是否遇到以下问题
更多建议
匿名提交