如何使用Nest ElasticSearch 6.x搜索具有不同类型文档的多个索引?

问题描述 投票:0回答:1

我有两个索引,每个索引都有自己的(不同形状)文档,但我有一个要求,搜索结果应该包括这两种类型的文档。

从我所读到的我需要做的是跨两个索引的协变搜索,搜索多个索引似乎并不困难,但我对如何在Elasticsearch 6.x中进行协变搜索一无所知。这里所有其他问题的答案都是针对旧版本的,所以这方面的文档非常有限。

https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/covariant-search-results.html

elasticsearch nest
1个回答
0
投票

在5.x及更低版本中,可以通过检查每个文档的类型并反序列化为相应的.NET类型来实现协变搜索。使用types being removed from Elasticsearch,6.x中的协变搜索变得有点棘手,我们基本上可以采用两种方法之一

  1. 使用可以表示两种形式的文档的通用类型,并反序列化这两种类型的所有属性。这可能是像Dictionary<string, object>或Json.NET的JObject
  2. 根据JSON中的属性,使用可以将派生类型反序列化为公共基类型的序列化程序。例如,在JSON中使用Json.NET's TypeNameHandling to include a $type discriminator field,以后可以将其反序列化为正确的类型。
© www.soinside.com 2019 - 2024. All rights reserved.