Keyword 字段类型 #
keyword 字段类型包含未经分析的字符串。它只允许精确的大小写敏感匹配。
默认情况下,keyword 字段既被索引(因为 index
已启用)也存储在磁盘上(因为 doc_values
已启用)。为了减少磁盘空间,您可以通过将 index
设置为 false
来指定不索引 keyword 字段。
如果您需要对字段进行全文搜索,请将其映射为
text
类型。
代码样例 #
以下查询创建了一个带有 keyword 字段的映射。将 index
设置为 false
指定将 genre
字段存储在磁盘上,并使用 doc_values
检索它:
PUT movies
{
"mappings" : {
"properties" : {
"genre" : {
"type" : "keyword",
"index" : false
}
}
}
}
参数说明 #
下表列出了 keyword 字段类型接受的参数。所有参数都是可选的。
参数 | 描述 |
---|---|
boost | 浮点值,指定此字段对相关性分数的权重。大于 1.0 的值会增加字段的相关性。0.0 到 1.0 之间的值会降低字段的相关性。默认值为 1.0。 |
doc_values | 布尔值,指定是否应将字段存储在磁盘上,以便可以用于聚合、排序或脚本。默认值为 true。 |
eager_global_ordinals | 指定是否应在刷新时立即加载全局序号。如果该字段经常用于聚合,此参数应设置为 true。默认值为 false。 |
fields | 要以多种方式索引同一个字符串(例如,作为 keyword 和 text),请提供 fields 参数。您可以指定字段的一个版本用于搜索,另一个版本用于排序和聚合。 |
ignore_above | 任何长度超过此整数值的字符串都不应被索引。默认值为 2147483647。默认动态映射会创建一个 ignore_above 设置为 256 的 keyword 子字段。 |
index | 布尔值,指定字段是否应可搜索。默认值为 true。要减少磁盘空间,请将 index 设置为 false。 |
index_options | 要存储在索引中的信息,将在计算相关性分数时考虑。可以设置为 freqs 以获取词频。默认值为 docs。 |
meta | 接受此字段的元数据。 |
normalizer | 指定在索引之前如何预处理此字段(例如,转换为小写)。默认值为 null(无预处理)。 |
norms | 布尔值,指定在计算相关性分数时是否应使用字段长度。默认值为 false。 |
null_value | 用于替代 null 的值。必须与字段类型相同。如果未指定此参数,当值为 null 时,该字段将被视为缺失。默认值为 null。 |
similarity | 用于计算相关性分数的排名算法。默认值为 BM25。 |
split_queries_on_whitespace | 布尔值,指定全文查询是否应在空格上分割。默认值为 false。 |
store | 布尔值,指定字段值是否应该被存储并且可以与 _source 字段分开检索。默认值为 false。 |