elasticsearch - 使用范围elasticsearch一起查询“AND”和“OR”

标签 elasticsearch

我进行了很多搜索,但案件一无所获。

我有关于 flex 搜索的帖子。我想得到的帖子

  • author_id = 2或post_id = 2
  • AND创建> 1524722310000

  • 我用了这个但是没用。它检索创建的> 1524722310000的所有帖子,并且不检查 author_id post_id !
    query: {
      bool: {
        should: [
            {match: {"author_id" : 2}},
            {match: {"post_id"   : 2}}
        ],
        filter: [
            {range: {"created": {gte : startTime , lte:targetTime}}},
        ]
      }
    }
    

    最佳答案

    您快到了,您只缺少一件事,即指定至少一个should子句应该匹配,您可以这样做:

    query: {
      bool: {
        minimum_should_match: 1,               <-- add this line
        should: [
            {match: {"author_id" : 2}},
            {match: {"post_id"   : 2}}
        ],
        filter: [
            {range: {"created": {gte : startTime , lte:targetTime}}},
        ]
      }
    }
    

    关于elasticsearch - 使用范围elasticsearch一起查询“AND”和“OR”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50036530/

    相关文章:

    solr - 如何将 Solr 查询转换为 Elasticsearch

    php - 我如何使用php将Elasticsearch集成到mysql

    c# - 快速将整个MongoDB集合索引到Elastcticsearch

    elasticsearch - Kubernetes 上 elasticsearch 6.3.0 的就绪性和 active 探测失败

    elasticsearch - Elastic Search echo jvm_options_parser_failed 此时出现意外

    arrays - ElasticSearch中的权限

    elasticsearch - Elasticsearch “AND in query_string”与 “default_operator AND”

    elasticsearch - 使用外部托管的Elasticsearch实例进行高级搜索

    elasticsearch - Elasticsearch 2.0如何在Loopback和Non-Loopback接口(interface)上绑定(bind)?

    elasticsearch - 比较多个查询中的 Elasticsearch 查询得分