没有C#POCO类的Elasticsearch映射

时间:2017-08-14 22:03:15

标签: c# elasticsearch nest

在我们的项目中,我们使用C#POCO类来映射Elasticsearch中的字段。我们使用NEST库。我们的项目正在不断发展,我们不断添加新的属性和新的数据模型,在几个地方更新C#POCO课程以吸收新的变化非常痛苦。我们已经有JSON格式的数据,我们用它来进行数据验证和其他处理。我期待使用这个JSON数据和索引,更新,搜索等,而无需提供C#POCO类。有人能指点我如何实现这个目标吗?我真的很感激帮助。如果需要更多信息,请告诉我。

这就是我们今天所拥有的。 (小例子)

C#POCO课程:

public class TestDataModel
{
    public int Id { get; set; }
    public string Value { get; set; }
    public DateTime? DateTimeField { get; set; }
}

}

弹性自定义助手方法:

      public async Task<IIndexResponse> IndexAsync<T>(T data, string indexName, string typeName, long versionNumber) where T : class
    {
        if (indexName == null)
        {
            throw new ArgumentNullException("Index name is null. Please provide index name to insert the data.");
        }

        return await Client.IndexAsync(data, i => i
            .Index(indexName)
            .Type(typeName)
            .Version(versionNumber));
    }

用法:

 IIndexResponse response = await searchHelper.IndexAsync<TestDataModel>(data.ToObject<TestDataModel>(), IndexName, elasticType);

上一行中的数据采用JSON格式。

0 个答案:

没有答案