Djangoelasticsearchdsl:如何跨多个文档进行搜索?

2024-04-23 14:49:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Django中有几个ElasticSearch文档,每个文档都描述了不同类型的对象:“MovieDoc”、“CartonDoc”等。从现在开始,我可以逐个搜索每个此类文档:

document = MovieDoc
results = document.search().query('some phrase')

但是,如果我想一次搜索所有文档,并按相关性对结果进行排序(即不搜索每个文档,然后再合并),该怎么办

我在elasticsearch dsl的documentation基础上尝试过类似的方法,但没有得到任何结果:

from elasticsearch_dsl import Search    
results = Search(index=['movie_docs', 'cartoon_docs']).query('some phrase')

Tags: 对象django文档docs类型searchsomeelasticsearch
1条回答
网友
1楼 · 发布于 2024-04-23 14:49:48

您可以使用通配符运算符(*)作为索引来搜索所有文档

实施细节可能会随着时间的推移而改变。有关Elasticsearch版本的信息,请参阅Multi-target syntax上的文档

from elasticsearch import Elasticsearch
from elasticsearch_dsl import Search

client = Elasticsearch()

s = Search(using=client, index="*")

response = s.execute()

for hit in response:
    print(hit)

相关问题 更多 >