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

云搜索服务

复制全文
下载 pdf
插件使用指导
使用 NGram-Type 插件模糊查询
复制全文
下载 pdf
使用 NGram-Type 插件模糊查询
opendistro-ngram-type 是云搜索服务的一个系统内置插件。在模糊搜索的场景中,推荐使用 Ngram 通配符查询,可以在字符串的任意位置查询到匹配项。本文介绍 NGram-Type 插件的简单使用方式。​
前提条件​
opendistro-ngram-type 插件默认未安装,如果需要使用,请提前自行安装。如何安装,请参见安装系统内置插件。​
步骤一:设置 mappings​
​
PUT my-index​
{​
"mappings": {​
"properties": {​
"my_doc": {​
"type": "ngram",​
"ignore_above":300,​
"null_value": "value1"​
}​
}​
}​
}​
​
  • Type:必填,设置字段类型为 ngram。​
  • ignore_above:可选,字段的最大字符长度,超过该长度的字段将不会索引。示例值 300,表示字段长度超过 300 后就不进行建立索引。​
  • null_value: 可选,当字段值为空时,不能被索引和查询。示例值 value1,表示当字段值为 null,,构建索引时将使用 value1。​
步骤二:写入文档​
​
PUT my-index/_doc/1​
{​
"my_doc" : "This string can be quite lengthy"​
}​
​
步骤三:查询文档​
​
GET my-index/_search​
{​
"query": {​
"wildcard": {​
"my_doc": {​
"value": "*quite*lengthy",​
"case_insensitive":"true",​
"boost":"1"​
}​
}​
}​
}​
​
  • 使用 NGram-Type 插件时,目前仅支持使用 wildcard 查询算子。​
  • value: 必选,模糊搜索内容。​
说明​
设置模糊搜索内容时,支持 2 种特殊通配符​
  • *:代表长度大于 0 的任何字符串。​
  • ?:代表长度为 1 的任何字符。​
  • case_insensitive:可选,匹配内容时,是否大小写敏感。默认为 false,表示敏感。​
  • boost:可选,修改查询得分权重,默认为 1。​
查询成功时,返回如下类似信息:​
​
{​
"took" : 180,​
"timed_out" : false,​
"_shards" : {​
"total" : 1,​
"successful" : 1,​
"skipped" : 0,​
"failed" : 0​
},​
"hits" : {​
"total" : {​
"value" : 1,​
"relation" : "eq"​
},​
"max_score" : 9.0,​
"hits" : [​
{​
"_index" : "my-index",​
"_type" : "_doc",​
"_id" : "1",​
"_score" : 9.0,​
"_source" : {​
"my_doc" : "This string can be quite lengthy"​
}​
}​
]​
}​
}​
​
​
最近更新时间:2026.03.11 16:59:50
这个页面对您有帮助吗?
有用
有用
无用
无用