ES-Spring Data Elasticsearch
创始人
2025-06-01 09:12:06
0

Spring Data 的目的是用统一的接口,适配所有不同的存储类型。

Spring Data Elasticsearch是Spring Data的一个子项目,该项目旨在为新数据存储提供熟悉且一致的基于 Spring 的编程模型,同时保留特定于存储的功能和功能。Spring Data Elasticsearch是一个以 POJO 为中心的模型,用于与 Elastichsearch 文档交互并轻松编写 Repository 风格的数据访问层。

特点

  • Spring 配置支持使用基于 Java 的@Configuration类或用于 ES 客户端实例的 XML 命名空间。
  • ElasticsearchTemplate提高执行常见 ES 操作的生产力的助手类。包括文档和 POJO 之间的集成对象映射。
  • 功能丰富的对象映射与 Spring 的转换服务集成
  • 基于注释的映射元数据但可扩展以支持其他元数据格式
  • Repository接口的自动实现,包括对自定义查找器方法的支持。
  • 对存储库的 CDI 支持

官网

  • https://spring.io/projects/spring-data-elasticsearch

兼容性(必看)
https://docs.spring.io/spring-data/elasticsearch/docs/4.2.1/reference/html/#preface.requirements

文档地址
https://docs.spring.io/spring-data/elasticsearch/docs/4.2.1/reference/html/#reference

优缺点

  • 优点:用统一的接口,适配所有不同的存储类型,学习成本低。
  • 缺点:适配的版本要比原生的 API 要慢。这个取决于 Spring Data Elasticsearch
    团队的开发速度。无法使用ES的一些新特性

Maven Repository

 org.springframework.boot spring-boot-starter-data-elasticsearch 

注解


indexName:用于存储此实体的索引的名称。它可以包含类似于“日志-#{T(java.time.LocalDate).now().toString()}”type :映射类型。如果未设置,则使用该类的小写简单名称。(自4.0版起已弃用)createIndex:标记是否在存储库引导时创建索引。默认值为true。请参阅自动创建带有相应映射的索引versionType:版本管理的配置。默认值为外部 .@Id:在字段级别应用,以标记用于标识的字段。@Transient:默认情况下,存储或检索文档时,所有字段都映射到文档,此批注不包括该字段。@PersistenceConstructor:标记在从数据库实例化对象时要使用的给定构造函数(甚至是包受保护的构造函数)。构造函数参数按名称映射到检索文档中的键值。@Field:应用于字段级别并定义字段的属性,大多数属性映射到相应的Elasticsearch映射定义(以下列表不完整,请查看注释Javadoc以获取完整的参考):name:将在Elasticsearch文档中表示的字段的名称,如果未设置,则使用Java字段名称。type:字段类型,可以是Text,关键字,Long,Integer,Short,Byte,Double,Float,HalfFloat,ScaledFloat,日期,日期Nanos,Boolean,Binary,Integer_Range,FloatRange,LongRange,DoubleˉRange,DateˉRange,Object,Nested,Ip,TokenCount,percollator,flatten,搜索。请参阅Elasticsearch映射类型format:一个或多个内置日期格式,请参阅下一节格式数据映射 .pattern:一个或多个自定义日期格式,请参阅下一节格式数据映射 .store:标志是否应将原始字段值存储在Elasticsearch中,默认值为假 .analyzer ,搜索分析器 ,normalizer用于指定自定义分析器和规格化器。@GeoPoint:将字段标记为地理点如果字段是GeoPoint班级 ```操作类型
Spring Data Elasticsearch 使用多个接口来定义可以针对 Elasticsearch 索引调用的操作。IndexOperations定义索引级别的操作,例如创建或删除索引。
DocumentOperations定义基于 id 存储、更新和检索实体的操作。
SearchOperations定义使用查询搜索多个实体的操作
ElasticsearchOperations结合了DocumentOperations和SearchOperations接口。
High Level REST Client

java

@Configuration 
public class RestClientConfig extends AbstractElasticsearchConfiguration {@Override
@Bean
public RestHighLevelClient elasticsearchClient() {final ClientConfiguration clientConfiguration = ClientConfiguration.builder()  .connectedTo("localhost:9200").build();return RestClients.create(clientConfiguration).rest();                         
}
}@Autowired RestHighLevelClient highLevelClient; RestClient lowLevelClient = highLevelClient.lowLevelClient();IndexRequest request = new IndexRequest("spring-data") .id(randomID()) .source(singletonMap("feature", "high-level-rest-client")) .setRefreshPolicy(IMMEDIATE);IndexResponse response = highLevelClient.index(request,RequestOptions.DEFAULT); ```

相关内容

热门资讯

《不显名大檀越请偈》 《不显名大檀越请偈》 释慧远 宋代 释慧远 单提直指若为参,贝叶灵文满宝函。无我无人无寿者,...
《赠茂伯王孙》 《赠茂伯王孙》 程可中 明代 程可中 云孙几叶忆高皇,社土千秋表旧疆。周礼未应俱在鲁,汉臣今...
《灰洞》 《灰洞》 范成大 宋代 范成大 塞北风沙涨帽檐,路经灰洞十分添。据鞍莫问尘多少,马耳冥蒙不见...
《白石山》 《白石山》 叶原贺 宋代 叶原贺 云梯连石磴,香树锁松关。林壑疑无路,神仙别有山。 《白石山...
《书怀》 《书怀》 刘幽求 唐代 刘幽求 心为明时尽,君门尚不容。田园迷径路,归去欲何从。 《书怀》刘...
《四时白纻歌 春白纻》 《四时白纻歌 春白纻》 沈约 南北朝 沈约 兰叶参差桃半红。飞芳舞縠戏春风。如娇如怨状不同。...
《长命女》 《长命女》 冯延巳 五代 冯延巳 春日宴,绿酒一杯歌一遍。再拜陈三愿:一愿郎君千岁,二愿妾身...
《寄程鹏飞》 《寄程鹏飞》 刘过 宋代 刘过 往事游边忆少年,未尝携刺五侯门。春风跃马汉南道,落日椎牛淮上...
《夜香》 《夜香》 陆游 宋代 陆游 投老误乘传,窃食惭无功。清夜一炷香,实与天心通。忤物虽至愚,许国...
《月上瓜洲·寓乌夜啼南徐多景... 《月上瓜洲·寓乌夜啼南徐多景楼作》 张辑 宋代 张辑 江头又见新秋。几多愁。塞草连天何处、是...
《竹枝词二首》 《竹枝词二首》 黄庭坚 宋代 黄庭坚 撑崖拄谷蝮蛇愁,入箐攀天猿掉头。鬼门关外莫言远,五十三...
《寄魏景山》 《寄魏景山》 方回 宋代 方回 长桥身作长城梦,南五湖天北济淮。重听吴歈怜我老,忆骑塞马与君...
《金釜山灵泉》 《金釜山灵泉》 吴宗旦 宋代 吴宗旦 泉来有脉去无痕,水底神龙暗吐吞。莫怪一池杯样小,个中风...
《林若愚七十》 《林若愚七十》 陈藻 宋代 陈藻 思我从网山,问道红泉市。托翁自渔溪,饷我百余里。数穷初值变...
《村晚》 《村晚》 张耒 宋代 张耒 深坞繁花丽,晴田细径分。孤舟春水路,芳草夕阳村。暗雀投檐静,昏鸦...
《合江亭》 《合江亭》 李恭 宋代 李恭 一丝风下碧云天,亭上窗开霁色鲜。严子钓台青树里,桐君丹灶白云边...
坎儿井组诗现代诗歌 坎儿井组诗现代诗歌  (一)  穿越千里  婉如玉带  你从那天际雪山起步  携历史的一路尘埃  涓...
《落第》 《落第》 孟郊 唐代 孟郊 晓月难为光,愁人难为肠。谁言春物荣,独见叶上霜。雕鹗失势病,鹪鹩...
《题卢州郡斋》 《题卢州郡斋》 郑綮 唐代 郑綮 九衢尘里一书生,多达逢时拥旆旌。醉里眼开金使字,紫旂风动耀...
《太白楼》 《太白楼》 文天祥 宋代 文天祥 高城蘸云根,聊可慰心迹。长风万里来,如对骑鲸客。监州好事者...