【问题标题】:How can i do a multiple search query within a single URI in ElasticSearch?如何在 ElasticSearch 中的单个 URI 中执行多个搜索查询?
【发布时间】:2016-09-13 12:48:06
【问题描述】:

我正在尝试获取索引的结果,方法是从 Postman 发送一个 GET http 调用,用于日期范围和我手动添加的字段(“log_type”),

所以现在我能够得到结果,当我单独查询它时:

日期范围:http://localhost:9200/dialog_test/_search?q=timestamp:[2016-08-05+TO+2016-08-06]

log_type:http://localhost:9200/dialog_test/_search?q=log_type:GetProvisioning%20SUCCESS

在上面的url(log_type)中,GetProvisioning Success是一个log_type。

所以我想知道的是,我怎样才能将它们结合到一个查询中以识别特定日期范围和特定 log_type 之间的结果是什么?

任何帮助都将不胜感激

【问题讨论】:

    标签: elasticsearch elasticsearch-query


    【解决方案1】:

    您可以根据query strings 使用ANDOR 布尔连词。在您的情况下,您可以执行以下操作:

    curl http://localhost:9200/dialog_test/_search?q=timestamp:[2016-08-05+TO+2016-08-06]+AND+log_type:GetProvisioning+SUCCESS
    

    【讨论】:

    • 小心在同一个 URL 中混合 %20+,这可能会产生不良影响。选择一个并坚持下去
    • @rchang 谢谢它的工作。只是一个澄清,是更好地编码空间或留下它 + ?
    • @Kulasangar 我的个人习惯是默认使用%20,但这或多或少是我的任意决定。 This SO question对此有更深入的讨论。
    【解决方案2】:

    此外,您可以使用源查询字符串参数来直接在 URL 中传递正文。例如:

    http://localhost:9200/my_index/_search?source={"query": {"match_all": {}},"size": "1","sort": [{"@timestamp": {"order": "desc"}}]}
    

    【讨论】:

    • 还需要包含类型,例如:/_search?source_content_type=application/json&source=......
    猜你喜欢
    • 2022-08-22
    • 2018-02-25
    • 1970-01-01
    • 2018-09-22
    • 2023-03-23
    • 2016-09-03
    • 2019-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多