# Term suggester

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

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

## 常见的 suggest 选项

| **test**          | **suggest**文本，**suggest**文本是必须选项，需要被设定为全局或者对每个**suggestion**。                                                                                                                                                                                                                                               |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **field**         | 从中获取候选**suggestions**的字段（**field**）。 这是必需的选项，需要设置为全局或按**suggestion**设置。                                                                                                                                                                                                                                     |
| **analyzer**      | **analyzer**跟**suggest**文本一起进行分析，默认为**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。**&#x9ED8;认为**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 -**&#x57FA;于**damerau\_levenshtein**的默认值，但是高度优化用于比较索引中的项的字符串距离。**damerau\_levenshtein -**&#x57FA;于**Damerau-Levenshtein**算法的字符串距离算法。**levenstein -**&#x57FA;于**Levenstein**编码距离算法的字符串距离算法。**jarowinkler -**&#x57FA;于**Jaro-Winkler**算法的字符串距离算法。**ngram -**&#x57FA;于字符**n-gram**的字符串距离算法。 |
