首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在elasticsearch中如何要求查询中的最小长度字母匹配

问在elasticsearch中如何要求查询中的最小长度字母匹配
EN

Stack Overflow用户
提问于 2022-06-21 15:38:43
回答 1查看 157关注 0票数 1

我想要求查询至少有5个匹配的连续字符来匹配特定的字段。它们可能有点模糊(如果序列越长,它就越模糊,那将是理想的)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-21 16:32:59

在这个例子中,我定义了n克,没有最小的5个字符。这样就有可能与至少5个字符匹配。

代码语言:javascript
复制
PUT teste
{
  "mappings": {
    "properties": {
      "name": {
        "type": "text",
        "fields": {
          "ngram": {
            "type": "text",
            "analyzer": "shingle_analyzer"
          }
        }
      }
    }
  },
  "settings": {
    "analysis": {
      "analyzer": {
        "shingle_analyzer": {
          "type": "custom",
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "shingle_filter"
          ]
        }
      },
      "filter": {
        "shingle_filter": {
          "type": "edge_ngram",
          "min_gram": 5,
          "max_gram": 8
        }
      }
    }
  }
}    

POST teste/_doc
{
  "name":"example text match fiver terms sequence"
}

GET teste/_search
{
  "query": {
      "match": {
        "name.ngram": "exampl"
      }   
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72703609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档