为什么选择ElasticsearchCRUD
我想要一个简单的方法来将我的应用程序实体添加,更新或删除到Elasticsearch文档中。 单个上下文可以与许多实体类型一起使用,并且可以根据需要进行非常容易的调整,例如对于所有属性进行小写处理,或者可以定义任何特定的映射。 ElasticLINQ目前没有提供CRUD操作,虽然您可以使用NEST几乎满足任何要求(我也认为它是一个很棒的API),但我发现它有点太复杂了。
设置基本的CRUD实体到文档
创建将在Elasticsearch中保存为文档的实体类:
创建您的ElasticsearchContext和IElasticsearchMappingResolver。 上下文需要Elasticsearch URL。 在映射文件中定义索引以及类型和属性映射
现在我们可以向Elasticsearch添加一些文档
以下是你如何选择,更新或删除文档
结果如下:

删除Elasticsearch索引
您也可以从Elasticsearch中删除任何索引。 要删除索引,必须将AllowDeleteForIndex属性设置为true。 我添加了这个,因此索引不会默认设置被删除。 通常,您不需要删除索引。
如果您需要特殊的实体/文档映射怎么办?
您可以实现ElasticsearchSerializerMapping,并根据需要定义映射。 以下示例仅使用小写字符映射文档。
您可以将其添加到IElasticsearchMappingResolver实现中:
您还可以映射这样的属性:
跟踪:
您还可以使用您最喜欢的记录器跟踪请求,响应。 所有您需要做的是实现ITraceProvider并在上下文中设置TraceProvider属性。
或者您可以使用System.Diagnostics进行跟踪:
这是System.Diagnostics配置的一个例子:
ITraceProvider的实现示例: