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

时间:2019-04-21 20:29:13

标签: elasticsearch nest

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

根据我所读的内容,我需要对两个索引进行协变搜索,对多个索引进行搜索似乎一点也不困难,但是我对如何在Elasticsearch 6中进行协变搜索一无所知。 X。其他所有问题的答案都是旧版本,关于此的文档非常有限。

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

1 个答案:

答案 0 :(得分: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,以后可以将其反序列化为正确的类型。