0

我需要配置开放搜索服务器来分析查询,以使查询中的任何单词排列都匹配,然后返回文档。

例如,在一个字段的索引中,我有一个短语“膝盖疼痛”。现在,如果我的查询类似于“如何消除人类膝盖的疼痛”。我希望此查询输出在索引字段中具有“膝盖疼痛”的文档。

因此,我要求将查询字符串分解为“移除”、“疼痛”、“人类”、“膝盖”、“移除疼痛”、“移除膝盖”、“移除人类”、“疼痛膝盖”、“人类膝盖” “膝盖疼痛”,“人体疼痛”等。

使其与“膝痛”相匹配。是否有任何标记器或过滤器可以帮助我实现这一目标。

4

1 回答 1

1

选择您的索引,单击 Schema 选项卡,然后单击 Analyzers 选项卡。

我通常编辑 TextAnalyzer 并向其添加额外的过滤器。我通常从小写和停止过滤器开始,以使搜索不区分大小写并删除诸如“a”、“an”、“the”之类的停用词。

然后,Shingle 过滤器将为您提供 n-gram 以进行短语匹配。带 3-4 四个字的带状疱疹过滤器通常有效。Shingling 正在从分析的文本中创建单词短语的重叠排列。“棕色狐狸跳得很高”,带状疱疹大小为 3 将创建分析的 1,2 和 3 个单词的 n-gram。IE,1 个词:“the”、“brown”、“fox”、“jumps”、“high”。2 字:“棕色”、“棕色狐狸”、“狐狸跳”、“跳高”等。

在此处输入图像描述

于 2016-05-03T12:44:49.127 回答