Link Search Menu Expand Document Documentation Menu

通配符字段类型

2.15 版引入

wildcard 字段是 keyword 字段的一种变体,专为任意子字符串和正则表达式匹配而设计。

当您的内容由“字符串序列”而非“文本”组成时,请使用 wildcard 字段。示例包括非结构化日志行和计算机代码。

wildcard 字段类型的索引方式与 keyword 字段类型不同。 keyword 字段将原始字段值写入索引,而 wildcard 字段类型将字段值拆分为长度小于或等于 3 的子字符串,并将这些子字符串写入索引。例如,字符串 test 被拆分为字符串 tteteseesest

在搜索时,查询模式中所需的子字符串会与索引进行匹配,以生成候选文档,然后根据查询中的模式对这些文档进行过滤。例如,对于搜索词 test,OpenSearch 执行索引搜索 tes AND est。如果搜索词包含少于三个字符,OpenSearch 将使用一个或两个字符长的字符子字符串。对于每个匹配的文档,如果源值为 test,则该文档将返回在结果中。这排除了诸如 nikola tesla felt alternating current was best 之类的误报值。

通常,精确匹配查询(如 termterms 查询)在 wildcard 字段上的性能不如在 keyword 字段上,而 wildcardprefixregexp 查询在 wildcard 字段上的性能更佳。

示例

创建包含 wildcard 字段的映射

PUT logs
{
  "mappings" : {
    "properties" : {
      "log_line" : {
        "type" :  "wildcard"
      }
    }
  }
}

参数

下表列出了 wildcard 字段可用的所有参数。

参数 描述
doc_values 一个布尔值,指定字段是否应存储在磁盘上,以便用于聚合、排序或脚本编写。默认值为 false
ignore_above 任何长度超过此整数值的字符串都不应被索引。默认值为 2147483647
normalizer 用于预处理索引和搜索值的归一化器。默认情况下,不进行归一化,使用原始值。您可以使用 lowercase 归一化器对字段执行不区分大小写的匹配。
null_value 用于代替 null 的值。必须与字段类型相同。如果未指定此参数,则当其值为 null 时,该字段被视为缺失。默认值为 null
剩余 350 字符

有问题?

想贡献?