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
这个页面对您有帮助吗?
有用
有用
无用
无用