Completion 字段类型

编辑

要使用 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 代码点。此限制仅在索引时使用,以减少每个输入字符串的字符总数,以防止大量输入使底层数据结构膨胀。大多数用例都不会受到默认值的影响,因为前缀完成很少会增长到超过少数几个字符的前缀。