elasticsearch - 将 Multisearch 合并到 Elasticsearch 中的单个查询中并在所有索引上执行
问题描述
我有一个python
应用程序,4
它elasticsearch
使用elasticsearch-dsl
. 它们中的每一个都执行到一个单独的索引。我的目标是将它们与其所有字段合并在一起(例如,如果所有字段中都有一个键samples
列表,我需要samples
将所有这些字段合并到list
最终查询的最终结果中)并执行所有索引。我不确定这里最好的是什么,以及是否有可能elasticsearch-dsl
。非常感谢任何建议。
解决方案
您可以使用multisearch api,使用它可以组合多个查询,甚至可以定位到多个索引。
例如
GET index1,index2,index3/_msearch
{ }
{"query":{//q1}}
{ }
{"query":{//q2}}
{ }
{"query":{//q3}}
{ }
{"query":{//q4}}
您甚至可以限制特定查询的索引。例如,如果您只想q4
执行,index1
则更改如下:
GET index1,index2,index3/_msearch
{ }
{"query":{//q1}}
{ }
{"query":{//q2}}
{ }
{"query":{//q3}}
{"index":"index1"}
{"query":{//q4}}
在这种情况下q1
,q2
andq3
将在索引上执行index1
,index2
而index3
whileq4
将仅在 上执行index1
。
推荐阅读
- nothing - 我应该为 Android 应用程序使用哪个 Eclipse 版本?Eclipse Scout 还是 Ecpise JEE?
- angular - 已部署的应用程序,端点上没有显示
- reactjs - React js-元素类型无效:
- xcode - 当 Picker selectedValue 更改时,SwiftUI 2.0 App 崩溃
- android - Android应用程序在打开后关闭而没有构建错误
- html - 如何在 ionic 5 中自定义离子范围?
- html - 如何使文本与 HTML/CSS 中的形状重叠?
- c# - 访问剃须刀页面中的列表需要使用 First()
- javascript - 移动导航菜单打开时防止滚动?
- ruby-on-rails - 如何在没有密码的情况下使用 Warden/devise 对用户进行身份验证?