Term suggester

为了理解suggestions的形式,请先阅读suggestions第一页。

术语 suggester 建议基于编辑距离的术语。 在术语 suggested 之前分析所提供的 suggest 文本。 根据分析的 suggest 文本 token 提供 suggest 的术语。 术语 suggester 不考虑作为请求的一部分的查询。

常见的 suggest 选项

test

suggest文本,suggest文本是必须选项,需要被设定为全局或者对每个suggestion

field

从中获取候选suggestions的字段(field)。 这是必需的选项,需要设置为全局或按suggestion设置。

analyzer

analyzersuggest文本一起进行分析,默认为suggest字段的搜索analyzer。

size

每个suggest文本标记(token)返回的最大更正值。

sort

定义每个suggest文本术语中suggestions该如何排序。 两个可能的值:score:先按照分数排序,然后按文档频率排序,然后是术语本身。frequency:按文档频率排序,然后依次选择相似性分数和术语本身。

suggest_mode

suggest_mode控制什么suggestions被包括或控制什么suggest文本术语,什么suggestions应该被suggested。 可以指定三个可能的值:missing: 只提供不在索引中的suggest文字字词的suggestion。 这是默认值。popular:只suggest出现在更多文档中的suggestions,而不是原始suggest文本术语。always: 根据suggest文字中的字词suggest任何相符的suggestions。

其他术语 suggest 选项:

lowercase_terms

在文本分析后的 小写suggest文本术语。

max_edits

可以认为是候选suggestions的最大编辑距离。 只能是介于1和2之间的值。任何其他值都会导致抛出错误的请求错误。 默认为2。

prefix_length

为了成为候选 suggestions 所必须匹配的最小前缀字符的数量。 默认值为1.增加此数字可提高拼写检查性能。 通常拼写错误不会出现在术语的开头。 (旧名称 “prefix_len” 已弃用)

min_word_length

suggest 文本术语必须包含的最小长度。 默认值为4.(旧名称 “min_word_len” 已弃用)

shard_size

设置要从每个单独的分片检索的 suggestions 的最大数量。 在减少阶段期间,仅基于size选项返回前N个suggestions。默认为size选项。 将其设置为大于该size的值可以是有用的,以便以性能为代价获得更准确的拼写校正的文档频率。 由于术语在分片之间分割的事实,拼写校正的分片级文档频率可能不精确。 增加这将使这些文档频率更精确。

max_inspections

用于乘以shards_size以便在碎片级别上检查更多候选拼写校正的因子。 可以以性能为代价提高精度。 默认为5。

min_doc_freq

suggestion应该出现的文档数量的最小阈值。这可以指定为绝对数字或文档数量的相对百分比。 这可以通过仅suggesting高频项来提高质量。 默认值为0f,未启用。 如果指定的值大于1,则该数字不能为小数。 分片级文档频率用于此选项。

max_term_freq

suggest文本标记可以存在的文档数量中的最大阈值,以便包括。 可以是表示文档频率的相对百分比数字(例如0.4)或绝对数字。 如果指定的值大于1,则不能指定小数。 默认为0.01f。 这可以用于排除高频术语的拼写检查。 高频项通常拼写正确,这也提高了拼写检查的性能。 分片级文档频率用于此选项。

string_distance

使用哪个字符串距离实现来比较类似的suggested术语。 可以指定五个可能的值:internal -基于damerau_levenshtein的默认值,但是高度优化用于比较索引中的项的字符串距离。damerau_levenshtein -基于Damerau-Levenshtein算法的字符串距离算法。levenstein -基于Levenstein编码距离算法的字符串距离算法。jarowinkler -基于Jaro-Winkler算法的字符串距离算法。ngram -基于字符n-gram的字符串距离算法。

Last updated