当前位置: 首页 > 知识库问答 >
问题:

通过组合range和term匹配json格式查询Elasticsearch

郎慎之
2023-03-14

我试图按时间范围查询Elasticsearch索引,并另外让一个术语匹配特定的字符串值。

我尝试了这个查询,它看起来很简单:

 {
  "query" : {
    "bool": {
      "must": [
        {
          "match": {
            "method": "/customer/help"
          }
        },
        {
          "range" : {
            "startTime": {
              "from" : "2015-10-20T13:00-04:00",
              "to" : "2015-10-20T14:00-04:00"
            }
          }
        }
      ]
    }
  }
}

在本例中,我希望给定时间范围内的所有文档也具有“/customer/help”的方法值。

在我的结果中,我收到的结果在时间范围内,但我得到的文档具有“method”字段的各种值,而我只想要该字段中的“/customer/help”的结果。

共有1个答案

席乐童
2023-03-14

在映射中,需要将方法作为NOT_Analysed(或用关键字分析器进行分析),并且查询应该使用术语。这样,在方法中索引的文本就像单个标记一样被索引,并且术语确保搜索的文本与在方法中索引的标记完全匹配:

    "method": {
      "type": "string",
      "index": "not_analyzed"
    }

以及您需要使用的查询:

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "method": "/customer/help"
          }
        },
        {
          "range": {
            "startTime": {
              "from": "2015-10-20T13:00-04:00",
              "to": "2015-10-20T14:00-04:00"
            }
          }
        }
      ]
    }
  }
}
 类似资料:
  • 所以我对大约500k文档有以下查询,它在数据库端非常慢: 我知道allowDiskUse使它变慢,但如果禁用它,我会得到: MongoError:超过$group的内存限制,但不允许外部排序。通过允许磁盘使用:真来选择加入。

  • 我不熟悉Elasticsearch和Nest,请原谅我的无知。我想在Elasticsearch v2.3.5中使用过滤器和multi\u匹配查询,但到目前为止,我还无法解决这个问题。我想,一旦我把它用于Elasticsearch,我应该能够将它映射到Nest。 以下是我的JSON数据结构: 下面是我的工作搜索查询(没有任何过滤器): 我只想在搜索结果中向用户显示这些记录,其中: 我尝试了不同的查询

  • 我想用JPA编写以下查询,以检索按和分组的指令的计数。我知道以下SQL可以工作: 我想从这个查询中获取结果,并将其映射到一个新的对象调用: 问题所在

  • 从JSON或JSON行形式的数据开始,我想使用结构模式匹配对其运行查询。 例如,在运行json.load()后,我得到一个结构如下的判决: 我想做的是应用Python 3.10的结构模式匹配提取相关数据,就像我使用这个SQL查询一样:

  • 问题内容: 我需要结合由两个rest服务提供的两个json数组。具有相同“ id”的条目属于在一起。 我需要以以下方式(我的模型在angular2中)在javascript中组合/复制/克隆json数组: 有没有办法将它们结合起来?参数名称未完全定义,需要与可变参数向量一起使用。 我尝试了每个循环混合。在我看来非常难看。 问题答案: 如果要编写它以便可以接受任意数量的数组,而不仅仅是2个,则可以利

  • 通过看到我的结果,我有点困惑如何在MatchPherage和match query中进行评分 对于匹配短语,我有如下查询 获得的reults如下 a。“信用-消费者测试文章”得分12.64 b的文件。“信用-X测试文章”得分12.64 c的文件。“Credit-XYZ测试文章”得分10.92 d的文档。“信用测试文章”得分10.22 e的文件。“Credit-Z测试文章”得分09.40的文档 前两