簡體   English   中英

用 python 更新一個 elasticsearch 查詢

[英]update a elasticsearch query with python

我想用 python 更新一個 elasticsearch 查詢。

從第一個查詢到 Db 我得到這個查詢示例作為一個字符串,我通過以下方式在 json 文件中轉換:

query = json.loads(string_query)

查詢示例:

{'bool': 
    {'must': [ 
            {'range': {'field': {'gte': lowerbound, 'lt': upperbound}}}
              ],
  'must_not': [{'match_phrase': {'field': {'query': 'word'}}}]}}

我想做的是將字段添加到查詢中:

{'bool': 
    {'must': [ 
            {'range': {'field': {'gte': lowerbound, 'lt': upperbound}}},
            {'range': {'field-2': {'gte': lowerbound, 'lt': upperbound}}}
            {'bool':  {'should': {'bool': {'must': 
                           [ 
                               {'range': {'field': {'gte': lowerbound, 'lt': upperbound}}},
                               {'range': {'field-2': {'gte': lowerbound, 'lt': upperbound}}}
                           ]}}}},
              ],
  'must_not': [{'match_phrase': {'field': {'query': 'word'}}}]}}

是否可以利用某些庫,或者應該通過從第一個庫構建新的 json 來“手工”完成?

順便說一句,這實際上是一個python問題。 json.loads輸出是一個字典。 您可以修改使用 Python 字典的方式。

例如

query["bool"]["must"] += [ < your query> ] 

您可以將此查詢對象傳遞給 requests.post() 或您選擇的庫以向 ES 提交請求。 順便說一句-您可能想查看 python elasticsearch-py 的彈性客戶端

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM