【问题标题】:How can we perform "in" query on Elasticsearch in python, using elasticsearch_dsl?我们如何使用 elasticsearch_dsl 在 python 中对 Elasticsearch 执行“in”查询?
【发布时间】:2021-08-14 11:15:02
【问题描述】:

我有一个列表,id_list = [1, 3, 5, 7]

我需要从弹性搜索中获取与 id_list 中存在的 id 相对应的数据,类似于我们为 postgres 所做的id__in

我试图找到一种使用elasticsearch_dsl.Search() 的方法,但我被困住了。任何有关代码或相关文档的帮助都会非常有帮助。

【问题讨论】:

    标签: python-3.x elasticsearch elasticsearch-dsl


    【解决方案1】:

    您可以在elasticsearch中使用terms query进行"in"查询

    试试下面的查询

    {
      "query": {
        "terms": {
          "id_list": [
            1,
            3,
            5,
            7
          ]
        }
      }
    }
    

    【讨论】:

    • 感谢您的回答。补充一点,对于 python,我们可以使用类似 s.query(query).filter('terms', id=[1, 3, 5, 7])
    • @uglyCoder 是的,如果您不关心得分部分,您也可以包含filter 子句,并且您只想知道id 是否匹配
    猜你喜欢
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    • 2013-10-10
    • 1970-01-01
    相关资源
    最近更新 更多