ElasticsearchCRUD使用(二)【简单的文档进行搜索的MVC应用程序】

释放双眼,带上耳机,听听看~!

搜索Elasticsearch中的文档

该应用程序使用ElasticsearchCRUD访问Elasticsearch。 API可以使用任何DTO或实体类,并将其自动映射到Elasticsearch索引并使用类类型键入。 默认索引是类的类型,所有字符都转换为小写字符。 默认类型是小写字符的类型名称。 如果Elasticsearch需要不同的映射,这可以很容易地改变。 例如,在Elasticsearch中保存为子文档的类需要其索引的映射,即。 使用存储父文档的索引。

在这个例子中使用了一个Skill 类。 这个类被保存在搜索引擎中,具有索引skills和类型skill。

ElasticsearchCRUD Search方法用于使用QueryString进行全文搜索。 该方法从SearchController获取 term(s),并在引擎中执行QueryString搜索。 此搜索不区分大小写。

您可以使用context.Search方法几乎可以进行任何搜索,而不仅仅是查询字符串搜索。 不支持高亮显示的结果,不支持多个索引或多个类型搜索。 所有您需要做的是为搜索构建JSON查询,并从匹配中返回类型的集合。 查询是使用Search类构建的。 Query属性定义可以使用通配符的查询字符串搜索。

搜索方法用于MVC SearchController。 Json被返回,因为jQuery Autocomplete 控件使用了action方法。

Autocomplete(jquery-ui)源方法使用SearchController中的操作方法搜索。 这将对象数组保存到autocomplete控件。 此控件需要控件的每个项中的标签和值属性。 select方法用于从搜索中选择一个结果。 然后将所选项目添加到页面上的其他html控件,以更新或删除HTTP请求。

然后可以使用以下控件:
ElasticsearchCRUD使用(二)【简单的文档进行搜索的MVC应用程序】

Elasticsearch创建,更新和删除

为了方便搜索和提供一些数据,使用ElasticsearchCRUD添加了创建,更新和删除实现。 提供者使用ElasticsearchCRUD的上下文,并在一个批量请求中执行所有待处理的更改到Elasticsearch。 多个索引,类型可以在单个上下文中执行批量请求。 HttpClient类在上下文中心下使用。 在Elasticsearch中添加或更改大量数据时,效果很好。

这可以在SearchController中使用。 HTTP Post Index操作方法中的创建skill文档已经实现了验证。 这调用ElasticsearchCRUD的AddUpdateDocument方法。 如果搜索引擎中已存在具有相同ID的文档,则文档将被覆盖。 通常实体来自主数据库,并保存elasticsearch以进行最佳搜索。 主数据库管理该实体的Ids,因此这不是该用例的问题。

然后可以在视图中使用控制器。 视图有3种不同的形式:创建,删除和更新。 当从Autocomplete控件中选择搜索结果时,删除和更新表单将被更新。

然后可以在浏览器中使用该应用程序,如下所示:
ElasticsearchCRUD使用(二)【简单的文档进行搜索的MVC应用程序】

结论

正如你所看到的,使用具有Elasticsearch的ASP.NET MVC进行全文搜索是非常容易的。 这可以很容易地改变为使用Web API与Angular JS。 由于这些规模很好,性能很好,您可以将其用于几乎任何应用程序。

给TA打赏
共{{data.count}}人
人已打赏
安全运维

OpenSSH-8.7p1离线升级修复安全漏洞

2021-10-23 10:13:25

安全运维

设计模式的设计原则

2021-12-12 17:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索