python - 在python中过滤以进行 Elasticsearch

标签 python python-3.x python-2.7 elasticsearch elastic-stack

我正在尝试过滤掉 Elasticsearch 查询以创建 Pandas 数据框。我在应用过滤器的数据框中有两列“类型”和“api”。当我将一列用作条件时,它工作正常..:-

result_dict = es.search(index="logstash-2018.08.11-alias", 
              body={"from": 0, "size": 10000,"query": 
              {"term" : {"type":"vx_apache_json"}}})

但是当我应用如下多个条件时:-
result_dict = es.search(index="logstash-2018.08.11-alias", body={"from": 0, "size": 1000,"queries": [
        { "term" : {"type" :"vx_apache_json"}},
        { "term" : {"api" :"viv_signin.php"}}
      ]})

我收到以下错误:-

RequestError:RequestError(400,“parsing_exception”,“[查询]中START_ARRAY的未知键。”)

有人可以在这里帮我吗,例如我可以在 Elasticsearch 中添加多重过滤。

最佳答案

试试下面的代码:

result_dict = es.search(index="logstash-2018.08.11-alias", body={"from": 0, "size": 1000,"query": {
        "constant_score" : {
            "filter" : {
                 "bool" : {
                    "must" : [
                        { "term" : { "type" :"vx_apache_json" } }, 
                        {"term"  :{ "api" :"viv_signin.php" }}
                    ]
                }
            }
        }
    }
  }
)

并且以相同的方式继续添加过滤器。

关于python - 在python中过滤以进行 Elasticsearch ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51972126/

相关文章:

python - Django "ValueError: embedded null byte"

python - 如何为特定版本的 Python 创建虚拟环境?

python - PyQt 将文件名传递给常用函数

python - 如何从 numpy.datetime64 对象中获取一个小时、分钟等?

python - 如何将多迹线图制作为可重用代码?

python - 以单独的名称安装包的分支

python - 如何使用请求测量下载速度和进度?

python - 我如何索引这个 csv 文件?

整个测试套件的 Python3 单元测试设置和拆卸

python-3.x - 将文本文件的每一行写入单独的文本文件并使用不同的名称保存