完成类型字段

编辑

要使用 completion 建议器,请将要生成建议的字段映射为 completion 类型。这将索引字段值以便快速完成。

resp = client.indices.create(
    index="music",
    mappings={
        "properties": {
            "suggest": {
                "type": "completion"
            }
        }
    },
)
print(resp)
response = client.indices.create(
  index: 'music',
  body: {
    mappings: {
      properties: {
        suggest: {
          type: 'completion'
        }
      }
    }
  }
)
puts response
const response = await client.indices.create({
  index: "music",
  mappings: {
    properties: {
      suggest: {
        type: "completion",
      },
    },
  },
});
console.log(response);
PUT music
{
  "mappings": {
    "properties": {
      "suggest": {
        "type": "completion"
      }
    }
  }
}

completion 字段的参数

编辑

completion 字段接受以下参数

analyzer

要使用的索引分析器,默认为 simple

search_analyzer

要使用的搜索分析器,默认为 analyzer 的值。

preserve_separators

保留分隔符,默认为 true。如果禁用此选项,当您建议 foof 时,可能会找到以 Foo Fighters 开头的字段。

preserve_position_increments

启用位置增量,默认为 true。如果禁用此选项并使用停用词分析器,当您建议 b 时,可能会得到一个以 The Beatles 开头的字段。 注意:您还可以通过索引两个输入 BeatlesThe Beatles 来实现此目的,如果能够丰富您的数据,则无需更改简单的分析器。

max_input_length

限制单个输入的长度,默认为 50 个 UTF-16 代码点。此限制仅在索引时使用,以减少每个输入字符串的总字符数,从而防止大量输入膨胀底层数据结构。大多数用例不会受到默认值的影响,因为前缀完成很少会增长到超过几个字符的前缀。