【问题标题】:Elasticsearch keyword + range query (V-6.2)Elasticsearch关键字+范围查询(V-6.2)
【发布时间】:2018-05-29 22:34:03
【问题描述】:

我正在尝试在 Elasticsearch 中编写一个查询,以使其与 Range 过滤器和用户的查询关键字输入一起使用。 我最终写的查询是:

"size": val, //default 10,
"from": 0, //default 0,
"query": {
    "bool": {
        "must": {
            "query_string": {
                "query": search_query //Val coming from user input
            },
            "filter": {
                "range": {
                    "lastmodifieddate": {
                        "gte": '2016-12-09T00:00:00',
                        "lte": '2016-12-20T00:00:00'
                    }
                }
            }
        }
    }
}

上述查询无效。

另外,我正在从我的 elasticsearch 中寻找匹配的 1 个键值对。

_source:
    lastmodifieddate: "2016-12-07T18:34:48.000+0000",
    ..
    ..
    fileType: "PDF"
    ...

有人可以解释一下如何使它工作,而且所有记录的查询参数必须匹配 fileType = PDF

TIA

【问题讨论】:

    标签: node.js elasticsearch range elasticsearch-6


    【解决方案1】:

    您必须将“过滤器”放在“必须”之外。两者处于不同的语境中。请参阅此文档https://www.elastic.co/guide/en/elasticsearch/reference/current/query-filter-context.html

    {
    "query": {
        "bool": {
            "must": {
                "query_string": {
                    "query": "user input" 
                }
            },
            "filter": {
                "range": {
                    "lastmodifieddate": {
                        "gte": "2014-01-09T00:00:00",
                        "lte": "2014-12-20T00:00:00"
                    }
                }
            }
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多