簡體   English   中英

Python elasticsearch dsl 搜索多字段並排序結果

[英]Python elasticsearch dsl search multi fields and order result

我如何在多字段的 elasticsearch dsl python 模塊中搜索,例如titlebody字段,並通過created_at字段 DESC 對其進行排序。

我有這個僅在title字段上搜索的示例:

q = request.GET.get('q', None)
s = Search(using=elastic_client, index='post').query('match', title=q)
response = s.execute()

我怎樣才能做到這一點?

找到解決方案:

from elasticsearch_dsl.query import MultiMatch

q = request.GET.get('q', None)
query = MultiMatch(query=q, fields=['title', 'body'], fuzziness='AUTO')
s = Search(using=elastic_client, index='post').query(query)
response = s.execute()

現在還有MultiSearch類。 所以你有可能:

from elasticsearch_dsl import MultiSearch, Search

ms = MultiSearch(index='post')

ms = ms.add(Search().filter('term', tags='title'))
ms = ms.add(Search().filter('term', tags='body'))

responses = ms.execute()

然后你可以對它進行分組,排序,等等。 但結果是每個過濾器的響應集合。

暫無
暫無

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

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