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