千家信息网

springboot中如何集成elasticsearch

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍"springboot中如何集成elasticsearch"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"springboot中如何集成elas
千家信息网最后更新 2025年01月19日springboot中如何集成elasticsearch

这篇文章主要介绍"springboot中如何集成elasticsearch"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"springboot中如何集成elasticsearch"文章能帮助大家解决问题。

1,引入依赖

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

2,编写实体映射类

@Data@Document(indexName = "index", createIndex = true)public class Index {        @Id    private String id;    @Field(type = FieldType.Text, analyzer = "ik_max_word", searchAnalyzer = "ik_smart")        private String content;}

3,编写访问接口(如果需要自动创建索引,该接口必须写,否则项目启动时不会自动检测并创建索引)

@Repositorypublic interface IndexRepository extends ElasticsearchRepository {        Page findByContent(String content, Pageable page);}

4,测试,用了template,和repository两种方式测试

@SpringBootTestpublic class EsTest {        @Autowired        ElasticsearchRestTemplate esTemplate;        @Autowired        IndexRepository indexRepository;                @BeforeEach        public void init() {                System.out.println("init");                indexRepository.deleteAll();                indexRepository.saveAll(ListUtil.of(                new Index("1","美国留给伊拉克的是个烂摊子吗"),                new Index("2","公安部:各地校车将享最高路权"),                new Index("3","中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"),                new Index("4","中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"),                new Index("5","中国天眼向全球正式开放下月世界大赛将比拼FAST脉冲星搜索")                ));        }                @Test        void testRepositoryQuery() {                Page pageList = indexRepository.findByContent("中国", PageRequest.of(0, 10));                pageList.getContent().forEach(e -> {                        System.out.println("repositoryQuery => "+e);                });        }                @Test        void testTemplateQuery() {                BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery()                                .must(QueryBuilders.simpleQueryStringQuery("中国").field("content"));                NativeSearchQuery query = new NativeSearchQueryBuilder()                                .withQuery(queryBuilder)                                .withPageable(PageRequest.of(0, 10))                                .build();                SearchHits search = esTemplate.search(query, Index.class);                if(search.hasSearchHits()) {                        search.getSearchHits().forEach(e -> {                                System.out.println("templateQuery => "+e.getContent());                        });                }        }}
init datatemplateQuery => Index(id=3, content=中韩渔警冲突调查:韩警平均每天扣1艘中国渔船)templateQuery => Index(id=4, content=中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首)templateQuery => Index(id=5, content=中国天眼向全球正式开放下月世界大赛将比拼FAST脉冲星搜索)init datarepositoryQuery => Index(id=3, content=中韩渔警冲突调查:韩警平均每天扣1艘中国渔船)repositoryQuery => Index(id=4, content=中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首)repositoryQuery => Index(id=5, content=中国天眼向全球正式开放下月世界大赛将比拼FAST脉冲星搜索)

5,可启动一个定时任务,定时ping,防止Connection time out

    @Scheduled(fixedRate = 15000)        public void ping() {                esTemplate.execute(client -> client.ping(RequestOptions.DEFAULT));        }

关于"springboot中如何集成elasticsearch"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

中国 世界 亚裔 全球 天眼 嫌犯 渔船 男子 知识 脉冲 脉冲星 领事 领事馆 洛杉矶 冲突 大赛 开放 搜索 枪击 调查 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 腾讯服务器安装传奇 安装数据库报错 开展网络安全和信息化培训 网络安全方面的开设院校 pyqt实际软件开发 wamp配置数据库 苹果未来之役用什么服务器好 电商常用的中文数据库 南京海航软件开发销售电话 繁昌天气预报软件开发 奉贤区智能化软件开发咨询报价 软件开发需要什么学历证明 京天华盛网络技术维护员 征信预警录入数据库什么意思 tbc服务器人口普查2021年12月 blender软件开发时间 精灵盛典装备数据库 软件开发工程师证书考 服务器ride 数据库进程 queryend 该选择不能在任何服务器上运行 宁波企业软件开发需要学什么 网络技术有限公司税收多少 毕业论文软件开发网上商城 怎么找回自己的网络安全密钥 tbc服务器人口普查2021年12月 数据库中关于组建约束的规则 历史上的网络安全事件 河北it软件开发销售价格 幼儿园网络安全宣传主题班会
0