如何在NEST中为没有类型的索引进行索引以准备ES 7+

时间:2018-03-21 16:38:32

标签: elasticsearch elasticsearch-net

希望使用ElasticSearch以及Net / NEST,并想知道索引文档的合适方法是什么,而不是使用类型?查看NEST文档,它看起来会自动从POCO创建一个类型,所以我不确定如何绕过这个和/或最佳实践来使用。由于在ES(7+)的未来版本中阅读了关于类型删除的问题,我之所以这样问。如果走ES路线,我想以正确的方式开始。

1 个答案:

答案 0 :(得分:1)

不久前,当我们查看5> 6路线图时,我不得不解决这个问题。

我发现最简单的解决方案是使用单一的“通用”类型,并开始将以前被认为是“类型”的内容存储到自己的索引中。如果您可以覆盖序列化程序输出的“类型”值,则可以将其设置为您自己的默认“_type”,同时将“type”关键字字段应用于您插入的每个新文档。一旦类型真正消失,请将此占位符_type全部放在一起。

我不使用NEST类型转换功能,并将所有数据推送到与索引创建同时映射的单个类型(“Document”,如下所示)作为标准.net词典。在应用程序级别,我更新了请求解析器(我们通过应用程序而不是直接将请求路由到弹性),以使用“type”字段将类型参数转换为过滤器。

以下是我的索引上的文档:

  {
    "_index": "an_index",
    "_type": "Document",
    "_id": "COEa100H00000D7AOcQAN",
    "_score": 1,
    "_source": {
      "title": "Document title"
      "id": "COEa100H00000D7AOcQAN",
      "type": "KeywordFieldForFilteringType"
    }