首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹性搜索中如何获得精确的单次匹配

弹性搜索中如何获得精确的单次匹配
EN

Stack Overflow用户
提问于 2020-11-20 02:19:05
回答 1查看 38关注 0票数 0

ES中的文档如下所示

代码语言:javascript
复制
              {
                    "indicator": "27.213.61.96",
                    "itype": "ipv4",
                   
                }
    
    
    
              { 
                    "indicator": "http://27.213.61.96:44375/Mozi.m",
                    "itype": "url",
             
                }

希望获得“指示符”:"27.213.61.96“对象,并为此尝试使用match_phrase、术语查询和constant_score查询,如下所示

代码语言:javascript
复制
{
    "query" : {
        "constant_score" : { 
            "filter" : {
                "term" : { 
                    "indicator" : "27.213.61.96"
                }
            }
        }
    }
}


{
    "query": {
        "term": {
            "indicator": "27.213.61.96"
        }
    }
}

作为响应,获得两个对象,但只想在响应对象下面。有什么办法能弄明白吗。映射是默认的映射,以及在不更改映射的情况下获取异常结果的任何方法。

代码语言:javascript
复制
{
                    "indicator": "27.213.61.96",
                    "itype": "ipv4",
                   
                }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-20 02:26:52

您需要将.keyword添加到indicator字段。这使用关键字分析器而不是标准分析器(注意".keyword"后的indicator字段)。试试下面的查询-

代码语言:javascript
复制
    {
  "query": {
    "term": {
      "indicator.keyword": "27.213.61.96"
    }
  }
}

搜索结果:

代码语言:javascript
复制
"hits": [
      {
        "_index": "64922836",
        "_type": "_doc",
        "_id": "1",
        "_score": 1.0,
        "_source": {
          "indicator": "27.213.61.96",
          "itype": "ipv4"
        }
      }
    ]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64922836

复制
相关文章

相似问题

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