keyword family包括以下字段类型:
- keyword,用于结构化内容,如ID、电子邮件地址、主机名、状态码、邮政编码或标记。
- constant_keyword 始终包含相同值的keyword字段。
- wildcard 非结构化machine-generated内容,wildcard类型针对具有大值或高基数的字段进行了优化。
keyword字段通常用于排序(sorting)、聚合(aggregations)和term-level查询,例如term。
避免使用keyword字段进行全文搜索(full-text)。改为使用文本(text)字段类型。
Keyword field type
下面是基本keyword字段的映射示例:
PUT my-index-000001
{
"mappings": {
"properties": {
"tags": {
"type": "keyword"
}
}
}
}
映射数字标识符
并非所有数值数据都应映射为numeric字段数据类型。Elasticsearch为了range查询会优化数值字段,如integer或long。但是,keyword字段更适合term和其他term-level查询。
range查询中很少使用诸如ISBN或产品ID之类的标识符。但是,它们通常使用term-level查询进行检索。
如果将数字标识符映射为keyword,请考虑:
- 不打算使用范围(range)查询搜索标识符数据。
- 快速检索很重要。keyword字段上的term查询搜索通常比数字字段上的term搜索快。
如果