前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >5 在springboot中使用ElasticsearchTemplate 操作ElasticSearch(本机和远程服务器)

5 在springboot中使用ElasticsearchTemplate 操作ElasticSearch(本机和远程服务器)

作者头像
天涯泪小武
发布2019-01-17 11:05:23
6.5K0
发布2019-01-17 11:05:23
举报
文章被收录于专栏:SpringCloud专栏SpringCloud专栏

第三篇和第四篇分别介绍了ElasticSearch的http请求命令和对java api的封装。像封装好的ES java api可以使用于普通的java项目里,来简化一些原生的命令。 springboot作为一个集成了N多功能的框架,自然不需要我们自己来封装工具类,它直接提供了ElasticsearchTemplate,和RedisTemplate一样是一个封装好的模板,当然你觉得ElasticsearchTemplate不好用的话,也可以去用自己的工具类。 现在用简单的例子来看看在本机和在远程服务器分别使用ElasticsearchTemplate进行数据操作。

一:使用本机的ElasticSearch

application.yml还是使用第一节时的yml文件

代码语言:javascript
复制
spring:
   data:
        elasticsearch:
            #cluster-name: #默认为elasticsearch
            #cluster-nodes: 112.74.72.18:9300 #配置es节点信息,逗号分隔,如果没有指定,则启动ClientNode
            properties:
                path:
                  logs: ./elasticsearch/log #elasticsearch日志存储目录
                  data: ./elasticsearch/data #elasticsearch数据存储目录

来看一下cluster-nodes,这里如果直接注释掉,不配置nodes,那么默认就是本机!如果要使用远程服务器,或者局域网服务器,那就需要在这里配置IP:PORT。 可以配置多个,以逗号分隔,相当于集群。cluster-name如果想改为其他,那就需要在安装ElasticSearch时编辑配置文件,设置name。 配置好yml后,就可以直接使用template了,嗯,就是这么简单! 我们在Test类里,可以直接这么写:

代码语言:javascript
复制
@Autowired
    ElasticsearchTemplate elasticsearchTemplate;

就可以使用elasticsearchTemplate了。 在第一篇时我们已经插入了两条数据了,下面就直接查询:

代码语言:javascript
复制
@Test
    public void test() {
        SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(queryStringQuery("spring boot OR 书籍")).build();
        List<Article> articles = elasticsearchTemplate.queryForList(searchQuery, Article.class);
        for (Article article : articles) {
            System.out.println(article.toString());
        }
    }

运行就看到查询结果了,template里方法很多,各种各样的操作,就需要自己慢慢研究了。 为什么Template直接就能用了呢,其实类似于这样:

代码语言:javascript
复制
import org.elasticsearch.client.Client;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;

/**
 * Created by wuwf on 17/6/2.
 */
@Configuration
public class ElasticSearchConfig {

    @Bean
    public ElasticsearchTemplate elasticsearchTemplate(Client client) {
        return new ElasticsearchTemplate(client);
    }

}

client参数就是yml里配置的信息,springboot会自动赋给Client,然后传给template。不过上面这段代码如果不写,系统也会自动做好赋值。 像前面说的,如果不想用template,而想使用自己的Util工具类,譬如ElasticSearchUtil,就可以在上面的代码中用该类替换ElasticTemplate,这样就可以到处autowired你自己的util工具类了。

二:使用远程服务器

以阿里云CentOS7为例,安装ElasticSearch。 先安装好jdk8,并配置环境变量,这个就不提了。 安装ElasticSearch,使用如下命令: 下载rpm包: wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.3.4/elasticsearch-2.3.4.rpm 安装 rpm -ivh elasticsearch-2.3.4.rpm 安装后先不要启动,我们做个配置 进入etc/elasticsearch,用vi编辑elasticsearch.yml。可以看到里面有cluster.name的地方,如果要做集群,那么集群内所有的cluster.name应该一致。我们找到network.host行,把注释放开,把后面的ip改为0.0.0.0,然后再把http.port那行的注释也放开即可。目的是为了在外网能访问到这台服务器公网IP的ElasticSearch服务。 启动服务service elasticsearch start 然后就可以在自己电脑用浏览器访问服务器ip:9200,就会看到一串欢迎语json的输出了。

配置好远程服务器后,在springboot里,也是修改yml文件,把cluster-nodes的注释放开,填上服务器的ip和端口即可。在项目里就能使用远程服务器的ElasticSearch服务了。 安装参考:http://www.jianshu.com/p/527a474bb6eb https://www.biaodianfu.com/centos-7-install-elasticsearch.html

三:安装head插件,管理Elasticsearch

这里写图片描述
这里写图片描述

这个就是Head插件,在里面可以查看各个节点,index数据等,相当于一个数据库管理页面。 安装方法是: /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head 注意路径和配置yml的路径是不一样的,yml是在etc/elasticsearch里。 安装好后,访问ip:9200/_plugin/head/ 就能看到上面的界面了。

关于ElasticsearchTemplate的更多使用方法、复杂查询、条件查询,我还需要慢慢摸索一下,回头总结一下。

本文参与?腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年06月03日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一:使用本机的ElasticSearch
  • 二:使用远程服务器
  • 三:安装head插件,管理Elasticsearch
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com