0

我需要在查询中添加另一个参数“类型”以进行过滤

这就是我现在拥有的,它对我有用:

    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()

如何按参数“类型”添加过滤?

4

1 回答 1

0

我认为您正在寻找布尔查询

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为。shouldOR

这有帮助吗?

于 2016-01-13T14:50:44.700 回答