簡體   English   中英

Django ElasticSearch / pyes:如何使用兩個過濾器進行搜索?

[英]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)

這里是鏈接查詢字符串 ,可以替換mustshould ,如果你想OR條件。

這有幫助嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM