2012-07-31 41 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) 
相關問題