You need to enable JavaScript to run this app.
文档中心
云搜索服务

云搜索服务

复制全文
下载 pdf
插件使用指导
Wildcard Type 插件使用说明
复制全文
下载 pdf
Wildcard Type 插件使用说明
本文介绍 Wildcard Type 的基本使用方法。​
背景信息​
Wildcard 类型作为 Keyword 类型的变体,主要用于提高原本应用在 Keyword 字段上的 regex/wildcard 查询性能。在索引阶段,Keyword 字段的数据会作为一个整体被索引,而 Wildcard 则会以 ngram 的方式进行索引(默认 N 为 3)。即 ABCD 将会以 ABC 和 BCD 被索引(目前的实现也会有长度为 1/2 的子串被索引),处理查询时也会采用类似的方法,如 test 查询将被作为 tes AND est 被查询,先进行初步的筛选,再进行最终的匹配。​
说明​
在 Wildcard 类型上进行完全匹配的查询(term/terms)性能将会弱于 Keyword 类型,您需要根据实际的查询方式来决定是否要使用 Wildcard Type。​
适用版本​
目前支持 Elasticsearch 7.10.2 版本和 OpenSearch 2.9.0 版本。​
适用场景​
  • 文档数量很大(如几十万、上百万甚至更多),并且字段值各不相同(cardinality 较大)且会用到 * 开头的查询。​
  • 字段长度很大(如数千字节以上) 且会在其上进行通配符或者正则查询。​
使用影响​
  • 相比于使用 Keyword,空间占用会变大。​
  • 开启 doc value 后,能够进一步提升 wildcard 查询的性能,但相应的存储空间也会变大。​
使用方法​
  1. 创建包含 Wildcard 字段类型的索引。​
  • ​
    PUT logs​
    {​
    "mappings" : {​
    "properties" : {​
    "log_line" : {​
    "type" : "wildcard"​
    }​
    }​
    }​
    }​
    ​
  1. 在 Wildcard 字段上进行 Wildcard 类型查询。​
  • ​
    GET logs/_search​
    {​
    "query": {​
    "wildcard": {​
    "log_line": {​
    "value": "k*y*fi*",​
    "case_insensitive":"true",​
    "boost":"2"​
    }​
    }​
    }​
    }​
    ​
  • 其中:​
  • case_insensitive:可选,表示匹配时,是否大小写敏感,默认敏感。​
  • boost:可选,修改查询得分权重。​
  • value 支持 2 种特殊通配符:​
  • *:代表长度大于 0 的任何字符串。​
  • ?:代表长度为 1 的任何字符。​
​
最近更新时间:2026.03.26 18:07:07
这个页面对您有帮助吗?
有用
有用
无用
无用