elasticsearch Elasticsearch子字符串必须包含在字段中,elasticsearch,lucene,kibana,elastic-stack,elasticsearch,Lucene,Kibana,Elastic Stack" /> elasticsearch Elasticsearch子字符串必须包含在字段中,elasticsearch,lucene,kibana,elastic-stack,elasticsearch,Lucene,Kibana,Elastic Stack" />

elasticsearch Elasticsearch子字符串必须包含在字段中

elasticsearch Elasticsearch子字符串必须包含在字段中,elasticsearch,lucene,kibana,elastic-stack,elasticsearch,Lucene,Kibana,Elastic Stack,我有以下疑问: GET _search { "query": { "bool" : { "must" : { "match" : { "log": "a perfect phrase" } }, "filter": { "range": { "time": { "gte": "now-10m", "lte": "

我有以下疑问:

GET _search
{
  "query": {
    "bool" : {
      "must" : {
        "match" : {  "log": "a perfect phrase" }
      },
     "filter": 
        {
          "range": {
            "time": {
               "gte": "now-10m",
               "lte": "now"
            }
          }
        }
    }
  }
}
然而,我有时会得到一些文档,其中包含一些来自完美短语的单词,但这些单词并不完全是完美短语。我只想保留包含这个确切字符串的文档,而不是包含几乎这个字符串的文档

因为这个字符串通常包含在更大的文档中,可以包含随机数据,所以我不认为我可以使用关键字这个术语

如何查找日志字段中正好包含此字符串的所有文档?

您可以使用匹配短语而不是匹配

因此,基本上您的搜索查询如下所示:

GET your-index-name/_search
{
  "query": {
    "bool" : {
      "must" : {
        "match_phrase" : {  "log": "a perfect phrase" }
      },
     "filter": 
        {
          "range": {
            "time": {
               "gte": "now-10m",
               "lte": "now"
            }
          }
        }
    }
  }
}
有关详细信息,请参阅此