elasticsearch 在elasticsearch中是否可以将MultiGet与布尔查询相结合?
MultiGet api可用于基于给定ID获取多个文档。() 是否可以在此操作中添加更多筛选器?给定一个ID列表,我只想找到'color'='green'的文档 例子: 假设存在以下文档:
elasticsearch 在elasticsearch中是否可以将MultiGet与布尔查询相结合?,
elasticsearch,nest,
elasticsearch,Nest,MultiGet api可用于基于给定ID获取多个文档。() 是否可以在此操作中添加更多筛选器?给定一个ID列表,我只想找到'color'='green'的文档 例子: 假设存在以下文档: 文档1:{“id”:“1”,“颜色”:“绿色”} 文档2:{“id”:“2”,“颜色”:“红色”} 文档3:{“id”:“3”,“颜色”:“绿色”} 文档4:{“id”:“4”,“颜色”:“绿色”} 目标: 获取ID为1、2或4的文档,其颜色为“绿色” 预期结果: [文件1,文件4] 到目前为止的查询…:
- 文档1:{“id”:“1”,“颜色”:“绿色”}
- 文档2:{“id”:“2”,“颜色”:“红色”}
- 文档3:{“id”:“3”,“颜色”:“绿色”}
- 文档4:{“id”:“4”,“颜色”:“绿色”}
varids=新列表{“1”、“2”、“4”};
var结果=等待_elasticClient
.MultiGetAsync(s=>s
.Index(“my-Index-000001”)
.GetMany(ID)
);
所以我实际上在寻找一种方法,将Bool查询添加到MultiGet查询中(我想)。有谁能告诉我正确的方向吗?multi-get仅用于按id获取多个文档。如果需要执行查询或筛选,则需要搜索查询
请注意,当涉及到索引文档时,multi-get和search具有不同的行为。使用multi-get,可以使用其id立即检索刚编制索引的文档。但是,使用search,文档只有在索引刷新(或)后才会出现在搜索结果中。在multi-get中,您不能添加postfilter。看起来您要执行搜索查询。
GET /_mget
{
"docs": [
{
"_index": "my-index-000001",
"_id": "1"
},
{
"_index": "my-index-000001",
"_id": "2"
},
{
"_index": "my-index-000001",
"_id": "4"
}
]
}
var ids = new List<string> {"1", "2", "4"};
var result = await _elasticClient
.MultiGetAsync(s => s
.Index("my-index-000001")
.GetMany<SomeRecordObject>(ids)
);