centos7安装elasticsearch6.x,并结合springboot2.0简单使用

elasticsearch 简写:ELK

参考文档https://blog.csdn.net/daerzei/article/details/79761086

根据上面的理解一下。我是失败了!

首先下载elasticsearch wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.tar.gz

链接可能会过期!去官网获取链接!https://artifacts.elastic.co/downloads/elasticsearch

解压 tar -zvxf elasticsearch-6.1.1.tar.gz

放到你喜欢的位置。

我在/usr/local/创建了elasticsearch文件夹,并elasticsearch-6.1.1解压缩文件放进来

修改配置文件cd config

vim elasticsearch.yml

这几句配置写上或取消注释:

cluster.name: my-application

node.name: node-1

network.host: 0.0.0.0   

http.port: 9200

discovery.zen.ping.unicast.hosts: ["39.108.126.143:9300"] (这是集群用的,可以不改)

好,接下来启动

去bin目录下启动sh elasticsearch

一定报错!

启动成功后

用postman测试get请求链接http://你的服务器地址:9200/

org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root

不能用root用户来启动,需要切换用户

没有的话添加用户

useradd es(随便写但要记得)

passwd  es(随便写但要记得)输入两次密码

chown -R es:es /export/servers/elasticsearch(给elasticsearch下所有文件赋予权限:es用户(上面你自己取的名字)才有权限)

max virtual memory areas vm.max_map_count [65530] is too low, increase to 

解决方案:切换到root用户     su root

vi /etc/sysctl.conf

添加:vm.max_map_count=655360

sysctl -p

重启。好,少了一个错误。

max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]

vi /etc/security/limits.conf 

添加如下内容:是添加!不是修改!!

* soft nofile 65536

* hard nofile 131072

* soft nproc 2048

* hard nproc 4096

重启,又少了个错误。

好的,现在重启成功!

如果有其他错误

参考错误集合:

http://www.cnblogs.com/hadoop2015/archive/2018/08/04/9420287.html

下面开始结合SpringBoot2.0,做下基本操作

首先你是不是得配置?(这里使用配置文件的配置)ok,先配置

#节点名字,默认elasticsearch
spring.data.elasticsearch.cluster-name=my-application
#节点地址,多个节点用逗号隔开(java客户端是9300,http端是9200)
spring.data.elasticsearch.cluster-nodes=xx.xxx.xx.xx:9300
spring.data.elasticsearch.repositories.enable=true

不懂ELK的可以先去看我的ELK整合总结。elk其实是一个Document文本,我理解为可快速查阅的一本书。所谓数据操作,就是创建一个Document或者是在某Document中进行操作。太多了,不懂的看我ELK文档整合

创建一个实体类

创建一个

@Document(indexName = "user", type = "userInfo", refreshInterval = "0s")
public class User {

    @Id
    private String id;

    private String username;

以下省略...}

好,要创建Document得有个链接,然后放进去是不是?

依赖

 <dependency>
        <groupId>org.elasticsearch</groupId>
        <artifactId>elasticsearch</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-elasticsearch</artifactId>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
    </dependency>
    <dependency>
        <groupId>net.java.dev.jna</groupId>
        <artifactId>jna</artifactId>
        <!-- <version>3.0.9</version> -->
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.2</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

第一种 javaJPA

  跟springboot全注解开发,mybaits-puls一样。简单!没学过jpa的同学不要慌,看下去就会了

创建dao接口类(理解为写mysql的dao接口就好啦,然后有个语法规则

举例:queryUserById=翻译为:根据id去user查询 也就是:去user文档节点根据id去查询,最终会编译成一个elk查询语句!

@Component
public interface UserRepository extends ElasticsearchRepository<User,String(与id同类型)> {
    User queryUserById(String id);
}

写完之后controller调用 UserRepository就行

第二种 BoolQueryBuilder

BoolQueryBuilder builder =new BoolQueryBuilder();

builder.must(QueryBuilders.fuzzyQuery("username", "xx"));

往builder组装条件(不懂去查api)...

 NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder();
 //将搜索条件设置到构建中
 nativeSearchQueryBuilder.withQuery(builder);
 //生产NativeSearchQuery
 NativeSearchQuery query = nativeSearchQueryBuilder.build();

最后返回就行userRepository.search(query)

第三种 不推荐

有个Template,自己去查吧。。。不喜欢

猜你喜欢

转载自blog.csdn.net/qq_39276448/article/details/85261927