2012-07-31 53 views
2

我正在使用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) 

回答

3

答案是包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)