Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch 在elasticsearch中是否可以将MultiGet与布尔查询相结合?_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Nest - Fatal编程技术网 elasticsearch 在elasticsearch中是否可以将MultiGet与布尔查询相结合?,elasticsearch,nest,elasticsearch,Nest" /> elasticsearch 在elasticsearch中是否可以将MultiGet与布尔查询相结合?,elasticsearch,nest,elasticsearch,Nest" />

elasticsearch 在elasticsearch中是否可以将MultiGet与布尔查询相结合?

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] 到目前为止的查询…:

MultiGet api可用于基于给定ID获取多个文档。()

是否可以在此操作中添加更多筛选器?给定一个ID列表,我只想找到'color'='green'的文档

例子: 假设存在以下文档:

  • 文档1:{“id”:“1”,“颜色”:“绿色”}
  • 文档2:{“id”:“2”,“颜色”:“红色”}
  • 文档3:{“id”:“3”,“颜色”:“绿色”}
  • 文档4:{“id”:“4”,“颜色”:“绿色”}
目标: 获取ID为1、2或4的文档,其颜色为“绿色”

预期结果: [文件1,文件4]

到目前为止的查询…: 或者在C#中使用NEST:

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)
                );