Home Articles

当查询文本是子字符串时,Elasticsearch完全匹配

Asked
Viewed 556 times
1

我的Elasticsearch中有一个带有字段的数据

PUT /logs/visited_domains/1
{
"visited_domain":"microsoft.com"
}
PUT /logs/visited_domains/2
{
"visited_domain":"not-microsoft.com"
}

映射是:

{
  "properties": {
    "visited_domain": {
      "type": "string",
      "index": "not_analyzed"
    }
  }
}

当我做一个ElasticSearch

{
  "query": {
    "filtered": {
      "filter": {
        "term": {
          "visited_domain": "microsoft.com"
        }
      }
    }
  }
}

我会得到两个结果 . 但我只想要完全匹配 . 我如何改变查询或改进映射的任何想法?

EDIT: 我将我的一个示例从 notmicrosoft.com 更改为 not-microsoft.com ,因为此破折号导致了很多麻烦 . notmicrosoft.com 不会返回,但 not-microsoft.com 会在搜索 microsoft.com 时返回 .

1 Answer

  • 2

    使用query_string,当与引号一起使用时,它给出完全匹配

    "query": {
         "query_string": {
              "default_field": "visited_domain",
                    "query": "\"microsoft.com\""
                    }
      }
    

Related