Elasticsearch (ES篇): Spring Data Elasticsearch

429 阅读2分钟

「这是我参与2022首次更文挑战的第22天,活动详情查看:2022首次更文挑战」。

Spring Data Elasticsearch

Spring Data Elasticsearch是Spring Data项目下的一个子模块。

Spring Data的官网:projects.spring.io/spring-data…

Spring Data是为数据访问提供熟悉且一致的基于Spring的编程模型,保留底层数据存储的特殊特性。

它使得数据访问技术,关系数据库和非关系数据库,map-reduce框架和基于云的数据服务变得容易。这是一个总括项目,其中包含许多特定于给定数据库的子项目。这些令人兴奋的技术项目背后,是由许多公司和开发人员合作开发的。

Spring Data Elasticsearch是Spring Data项目的一部分,该项目旨在为新数据存储提供熟悉且一致的基于Spring的编程模型,同时保留特定于存储的功能;

Spring Data Elasticsearch项目提供了与Elasticsearch搜索引擎的集成;

Spring Data Elasticsearch的关键功能区域是一个以POJO为中心的模型,该模型用于与Elastichsearch文档进行交互并轻松编写存储库样式的数据访问层;

Spring配置支持使用基于Java的@Configuration类和ElasticsearchTemplate帮助器类,可提高执行常规ES操作的效率,包括文档和POJO之间的集成对象映射;

总结开发方式:

(1)采用elasticsearch官方提供的高级rest客户端api进行开发

elasticsearch-rest-high-level-client

(2)采用spring data elasticsearch基于jpa风格的ElasticsearchRepository进行开发

(3)采用spring data elasticsearch提供的ElasticsearchRestTemplate模板类进行开发

具体参考一下整合的样例代码;

IK中文分词

中文分词组件有很多种

IKAnalyzer:www.oschina.net/p/ikanalyze… 

BosonNLP:bosonnlp.com/dev/center 

NLPIR:ictclas.nlpir.org/ 

SCWS中文分词:www.xunsearch.com/scws/docs.p… 

结巴分词:github.com/fxsjy/jieba 

盘古分词:pangusegment.codeplex.com/ 

庖丁解牛:code.google.com/p/paoding/ (暂时打不开)

搜狗分词:www.sogou.com/labs/webser… 

新浪云:www.sinacloud.com/doc/sae/pyt… 

语言云:www.ltp-cloud.com/document

在这里我们选用的 IK 分词:

IK 分细粒度 ik-max-word 和粗粒度 ik_smart 两种分词方式;

IK 更新字典只需要在词典末尾添加关键词即可,支持本地和远程词典两种方式;

IK 分词插件的一直在更新,和最新版本elas保持一致,推荐使用;