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

标签 elasticsearch lucene kibana elastic-stack

我有以下查询:

GET _search
{
  "query": {
    "bool" : {
      "must" : {
        "match" : {  "log": "a perfect phrase" }
      },
     "filter": 
        {
          "range": {
            "time": {
               "gte": "now-10m",
               "lte": "now"
            }
          }
        }
    }
  }
}

但是,有时我会得到一些文档,其中包含a perfect phrase中的某些单词,但不完全是a perfect phrase。我只想保留包含此确切字符串的文档,而不保留包含几乎此字符串的文档。

由于此字符串通常包含在更大的文档中,该文档可以包含随机数据,因此我认为我不能使用term关键字。

如何查找log字段完全包含此字符串的所有文档?

最佳答案

您可以使用match_phrase代替match

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

GET your-index-name/_search
{
  "query": {
    "bool" : {
      "must" : {
        "match_phrase" : {  "log": "a perfect phrase" }
      },
     "filter": 
        {
          "range": {
            "time": {
               "gte": "now-10m",
               "lte": "now"
            }
          }
        }
    }
  }
}

有关更多信息,请引用此link

关于elasticsearch - Elasticsearch子字符串必须包含在字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52887127/

相关文章:

java - Spring Data Elasticsearch 查询日期格式

spring - 带有 Spring Data 的 Elasticsearch - _local 搜索首选项

oracle - 在 Solr 中,如何获取所有文档的一个字段(文档 ID)的列表?

elasticsearch - Kibana脚本字段中的Groovy脚本

jquery - 动态生成 kibana iframe(短网址)

text - ElasticSearch查询问题

c# - C#HttpClient.PostAsJsonAsync()失败,即使通过PostMan发出的请求是完全相同的请求

lucene - 不标记某些单词/模式的标准分析器

java - 为什么会出现这个异常呢? Lucene异常

elasticsearch - 如何使用 StormCrawler 将网站内容存储在状态索引中?