ELASTICSEARCH CRUD .NET PROVIDER
翻译自(原文地址: https://damienbod.com/2014/09/22/elasticsearch-crud-net-provider/)
本文介绍了ElasticsearchCRUD NuGet包的使用。ElasticsearchCRUD便于你通过对实体的插入、删除、修改从Elasticsearch中查找单个记录来实现CURD功能。这个包只包括基本搜索或查询可能性。
代码: https://github.com/damienbod/ElasticsearchCRUD (我fork的地址 https://github.com/wtujvk/ElasticsearchCRUD)
NuGet Package: https://www.nuget.org/packages/ElasticsearchCRUD/
问题: https://github.com/damienbod/ElasticsearchCRUD/issues
教程:
- ElasticsearchCRUD 介绍
- 使用自动完成、jQuery和JTALE的简单文档搜索MVC应用程序
- 具有嵌套文档的MVC搜索的CRUD
- 利用实体框架从MS SQL Server获取数据传输到Elasticsearch
- 带有子文档的MVC的搜索
- 基于实体框架和搜索的MVC应用
- 实时重建Elasticsearch的索引
- 基于搜索和Web API导出CSV
- 父、子、孙子记录和路由的检索
- Elasticsearch的类型映射到ElasticsearchCRUD
- 使用搜索语句的搜索同义词分析器
- 使用德国分析器搜索
- 基于谷歌的MVC地图搜索
- 查询和过滤的搜索功能
- Elasticsearch批量插入
- Elasticsearch聚合搜索
- 多个Index和Type的搜索
- 搜索高亮
- 索引权重
举例:
简单自动完成搜索 (我fork的 https://github.com/wtujvk/WebSearchWithElasticsearch)
本示例演示如何使用具有jQuery自动完成和Elasticsearch简单文档的MVC应用程序进行简单搜索。
使用ElasticsearchCRUD查询嵌套文档 (我的fork: https://github.com/wtujvk/WebSearchWithElasticsearchNestedDocuments)
这个例子使用了搜索嵌套文档。文档可以被创建、删除、更新或搜索。自动完成搜索搜索文档以及嵌套对象。
MVC应用程序中的搜索父子文档 (我的fork: https://github.com/wtujvk/WebSearchWithElasticsearchChildDocuments)
这个例子使用了弹性搜索子/父文档。所有文档都保存在同一索引中,每个索引都有不同的类型。子文档和父文档保存在同一碎片上。可以使用所有子文档进行CRUD操作或搜索子/父文档。
通过从MS SQLServer 2014通过EF传输到Elasticsearch
这个例子展示了如何在弹性搜索中将实体传递给文档。这些实体被保存到Elasticsearch。
此示例演示如何使用实体框架作为主数据库,以及如何在MVC应用程序中使用Elasticsearch进行搜索。当实体框架更改、删除或更新实体时,应用程序需要在搜索引擎中创建、更新、删除文档。
重建索引
此示例演示如何在搜索中执行实况重索引。没有停工时间。使用别名访问旧索引。新索引是使用扫描和滚动和文档映射器从旧索引创建的。然后将别名切换为访问新索引。然后,如果需要,可以删除旧索引。
从Elasticsearch(扫描和滚动)通过Web API导出 CSV
这个例子展示了如何从Elasticsearch(X搜索扫描和滚动)导出数据到Web API作为CSV文件(使用WebApPixTrim.Faltuut.Xlsx)。使用Simulalr实时显示导出。该示例还提供了用于弹性检索的SignalR TraceProvider。
ConsoleElasticsearchCrudExample
一个 基本的CRUD示例。
ElasticsearchCRUD.Integration.Test
集成测试显示了大量的弹性搜索实例。
Damienbod.AnimalProvider
示例显示映射配置。
为什么使用 ElasticsearchCRUD?
我需要一个简单的方法来添加、更新或删除我的应用程序实体到弹出式搜索文档中。单个上下文可以与许多实体类型一起工作,并且可以根据需要非常容易地进行调整,例如对所有属性进行小写,或者可以定义任何特定的映射。ElasticLINQ目前不提供CRUD操作,尽管您可以使用NEST满足几乎任何要求(我也认为它是一个很好的API),但是我发现它太复杂了,不能使用。