如何使用TermQuery在多个术语中执行AND查询?
问题描述:
我正在使用python Python库使用elasticsearch。如何使用TermQuery在多个术语中执行AND查询?
假设我想查找标题=“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)
答
答案是包2个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)