2-1 SpringBoot集成ES5.6.9

2020-08-01  本文已影响0人  Finlay_Li

Java操作ES

具体可以看:
编程不良人

<!-- Elasticsearch -->
        <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>${elasticsearch}</version>
        </dependency>

        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
            <version>${elasticsearch}</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

SpringBoot集成ES

版本关系

https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#preface.versions

image.png

依赖

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

配置application. properties

#--------------------------------------------server-----------------------------------------
server.port=6666
spring.application.name=ES

#与java交互的默认端口号是9300,与http交互的端口号是9200
spring.data.elasticsearch.cluster-nodes=ip:9300

启动日志错误

执行createIndex() 时报ERROR 60036 --- [ main] .d.e.r.s.AbstractElasticsearchRepository : None of the configured nodes are available

  1. boot的连接信息没配置正确
  2. 9300的防火墙没开

springboot如何操作ES

提供了相关注解标识文档
  1. @Document:
    修饰范围:类上作用: 代表这个类的实例是一条文档document

indexName属性: 用来限定对象的实例放入Es中哪个索引库中
type属性:用来限定对象的实例放入indexNarme索引库的哪个类型

  1. @Field
    修饰范围:用在成员变量上,代表当前属性为Es中文档的一个字段

type属性:用来限定当前索引中当前类型中当前字段在Es中的类型
如:FieldType. TEXT
analyzer属性: 用来指定字段分词时,分词器是哪个"ik_ max_ word" "ik_ smart"

  1. @Id
    修饰范围:用来成员变量上作用:用来将类中成员变量与es中_ id映射
Boot提供的ES操作封装类
  1. 简单操作
    BookRepository extends ElasticsearchRepository

  2. 复杂查询/高亮
    ElasticsearchTemplate

上一篇 下一篇

猜你喜欢

热点阅读