elasticsearch 嵌套多目标搜索所有可能的类型?,elasticsearch,nest,elasticsearch,Nest" /> elasticsearch 嵌套多目标搜索所有可能的类型?,elasticsearch,nest,elasticsearch,Nest" />

elasticsearch 嵌套多目标搜索所有可能的类型?

elasticsearch 嵌套多目标搜索所有可能的类型?,elasticsearch,nest,elasticsearch,Nest,我有唯一的文档ID(所有类型),我想检查elasticsearch索引中已经存在的文档。我试着搜索 var duplicateCheck = _elasticClient .MultiGet(m => m.GetMany<object>(notices.Select(s => s.Id)).Fields("Id")); var duplicateCheck=\u elasticClient .MultiGet(m=>m.Get

我有唯一的文档ID(所有类型),我想检查elasticsearch索引中已经存在的文档。我试着搜索

  var duplicateCheck = _elasticClient
                    .MultiGet(m => m.GetMany<object>(notices.Select(s => s.Id)).Fields("Id"));
var duplicateCheck=\u elasticClient
.MultiGet(m=>m.GetMany(notices.Select(s=>s.Id)).Fields(“Id”);
但它返回错误的结果-每个文档都将find属性设置为false

更新 这里有变通办法

 var exisitngDocIds = _elasticClient.Search<ZPBase>(s => s
                        .AllTypes()
                        .Query(q => q.Ids(notices.Select(z=>z.Id)))
                        .Fields("Id")
                        .Take(notices.Count)
                    );

notices = notices.Where(q => !exisitngDocIds.Hits.Any(s => s.Id == q.Id)).ToList();
var exisitingdocids=\u elasticClient.Search(s=>s
.AllTypes()
.Query(q=>q.Id(notices.Select(z=>z.Id)))
.字段(“Id”)
.接受(通知.计数)
);
notices=notices.Where(q=>!exisitingdocids.Hits.Any(s=>s.Id==q.Id)).ToList();
从文档中,我意识到您可以使用类似于以下代码的方法来解决问题:

var response = _elasticClient.MultiGet(m => m
                    .Index(MyIndex)
                    .Type("")
                    .GetMany<ZPBase>(noticeIds));
var-response=\u elasticClient.MultiGet(m=>m
.索引(MyIndex)
.Type(“”)
.GetMany(noticeIds));
请注意,从文档中传递的空字符串为
类型

,我意识到您可以使用类似于以下代码的内容来解决问题:

var response = _elasticClient.MultiGet(m => m
                    .Index(MyIndex)
                    .Type("")
                    .GetMany<ZPBase>(noticeIds));
var-response=\u elasticClient.MultiGet(m=>m
.索引(MyIndex)
.Type(“”)
.GetMany(noticeIds));
注意作为
类型传递的空字符串