在我们的项目中,我们使用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格式。