【问题标题】:How to search across multiple indices which have different kinds of documents using Nest ElasticSearch 6.x?如何使用 Nest ElasticSearch 6.x 搜索具有不同类型文档的多个索引?
【发布时间】:2019-04-21 20:29:12
【问题描述】:

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

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

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

【问题讨论】:

    标签: elasticsearch nest


    【解决方案1】:

    在 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,以后可以用来反序列化为正确的类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-12
      • 2021-08-12
      • 2018-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-11
      相关资源
      最近更新 更多