【问题标题】:How to use TermQuery to do an AND query across multiple terms?如何使用 TermQuery 跨多个术语进行 AND 查询?
【发布时间】:2012-07-29 08:41:51
【问题描述】:

我正在通过 pyes Python 库使用 elasticsearch。

假设我想查找所有 title="Rainbow" AND artist="Kermit" 的文档。以下返回 title="Rainbow" 或 artist="Kermit" 的文档。如何将其更改为 AND?

query = pyes.TermQuery()
query.add("title", "rainbow")
query.add("artist","kermit")
search = pyes.Search(query)
results = conn.search(search, index_name, doc_type)

【问题讨论】:

    标签: python elasticsearch pyes


    【解决方案1】:

    答案是将两个 TermQuery 包装在一个 BooleanQuery 中

    q1 = pyes.TermQuery("title", "rainbow")
    q2 = pyes.TermQuery("artist", "kermit")
    query = BooleanQuery(must=[q1, q2])
    search = pyes.Search(query)
    results = conn.search(search, index_name, doc_type)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多