ElasticSearch:如何从多个索引进行搜索

lztngnrs  于 2022-09-20  发布在  ElasticSearch
关注(0)|答案(1)|浏览(307)

我遇到了需要从多个索引(产品和用户)中进行搜索的情况。下面是我用来进行搜索的一个示例查询

http://localhost:9200/_all/_search?q=*wood*
http://localhost:9200/users,products/_search?q=*wood*

对于上述接口请求,它只返回产品索引的搜索结果。但如果我使用下面的API进行搜索,它会返回用户索引的搜索结果

http://localhost:9200/users/_search?q=*wood*

如您所见,我为“q”参数传递了相同的值。我需要同时搜索产品和用户索引,并检查在这两个索引的任何属性中是否有单词“wood”。我怎样才能做到这一点?

c9qzyr3d

c9qzyr3d1#

您可以传递多个索引名而不是_all,因为它将通过使用逗号分隔的索引名来搜索您不想要的其他索引,例如

http://localhost:9200/users,products/_search?q=*wood*

虽然_all也应该从users索引中提取结果,当您指定其名称时,您需要调试为什么会发生这种情况,可能会将size参数增加到1000,因为默认情况下Elasticearch只返回10个结果,而且在_all的情况下,似乎所有排名靠前的结果都只来自products索引。

相关问题