Python elasticsearch dsl搜索多字段并排序结果

Mir*_*lic 2 python pyelasticsearch elasticsearch-dsl

我如何在 elasticsearch dsl python 模块中搜索多个字段,例如titlebody字段,并按字段 DESC 对其进行排序created_at

我有一个仅在字段中搜索的示例title

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

我怎样才能做到这一点?

Mir*_*lic 6

找到解决方案:

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()
Run Code Online (Sandbox Code Playgroud)