[英]Django ElasticSearch / pyes : How to search with two filters?
我需要在查詢中添加另一個參數“類型”以進行過濾
這是我現在擁有的,對我有用:
conn = pyes.ES(settings.ES_URL)
query_string = self.request.GET['q'].lower()
type = self.request.GET['type'].lower()#not used yet!
...
query1 = pyes.MultiMatchQuery(self.FIELDS_SEARCH, query_string, operator='and')
search1 = pyes.Search(query=query1, filter=filters, fields=self.RESPONSE_FIELDS, size=num, index_boost=1)
response = conn.search_multi([search1, search2], indices_list=[es_alias] * 2, doc_types_list=['asset', 'people'] * 2)
response._do_search()
如何添加按參數“類型”過濾?
我認為您正在尋找布爾查詢
query1 = pyes.MultiMatchQuery(self.FIELDS_SEARCH, query_string, operator='and')
typequery = pyes.QueryStringQuery(query="type_value",default_field="type")
combinequery = pyes.BoolQuery(must=[query1, typequery])
searchquery = pyes.Search(query=combinequery,filter=filters, fields=self.RESPONSE_FIELDS, size=num, index_boost=1)
這里是鏈接查詢字符串 ,可以替換must
與should
,如果你想OR
條件。
這有幫助嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.