相关疑难解决方法(0)

如何使用python在一个弹性搜索查询中包含范围和匹配查询?

我必须找到具有字符串的匹配文档,例如:在某些“键”范围内的字符串:“ sky”。当我编写单独的匹配和范围查询时,我从ES获得输出,但是合并在一起时会抛出异常。

范围查询:

res = es.search(index="dummy",
                body={"from":0, "size":0,"query": {"range":{"key":{"gte":"1000"}}}})
Run Code Online (Sandbox Code Playgroud)

匹配查询:

res = es.search(index="dummy",
                body={"from":0, "size":0,"query": {"match":{"word":"sky"}}})
Run Code Online (Sandbox Code Playgroud)

组合查询:

res = es.search(index="dummy",
                body={
                  "from":0,
                  "size":0,
                  "query": {
                    "range":{
                      "key":{"gte":"1000"}
                    }
                  },
                  "match":{"word":"sky"}
                })
Run Code Online (Sandbox Code Playgroud)

组合查询在执行时会引发错误:

引发HTTP_EXCEPTIONS.get(状态码,TransportError)(状态码,error_message,Additional_info)elasticsearch.exceptions.RequestError:TransportError(400,u'parsing_exception',u'[match]中START_OBJECT的未知键。')

合并两个查询的正确方法是什么?

python elasticsearch pyelasticsearch

1
推荐指数
1
解决办法
1173
查看次数

标签 统计

elasticsearch ×1

pyelasticsearch ×1

python ×1