美文网首页
SpringBoot集成elasticsearch

SpringBoot集成elasticsearch

作者: _Gaara_ | 来源:发表于2020-09-08 16:43 被阅读0次

下载完镜像,运行,浏览器查看都没问题,但是项目运行报错

elasticsearch.client.transport.NoNodeAvailableException:
 None of the configured nodes are available: [{#transport#-1}{HR7PO0wtQ36Yum4yX6OEEg}{1

百度半天感觉最可疑的是一个版本问题


版本对照

而我查看发现我本地maven的这个版本对应的是6.2.2,而不是现在docker的版本,重新部署一下试试。
pom如下:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.data</groupId>
                    <artifactId>spring-data-elasticsearch</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-elasticsearch</artifactId>
            <version>3.2.5.RELEASE</version>
</dependency>

6.2.2版本dockerpull不下来,尝试使用6.5.0,发现可以使用。
配置:
一共就三个地方,pom加入依赖,创建对象,实现模板类接口,yml添加配置信息
yml:

  data:
    elasticsearch:
      cluster-name: docker-cluster
      cluster-nodes: 127.0.0.1:9300
      repositories:
        enabled: true

对象类

 
@ApiModel(value="ring", description="环比对象")
@Data
@Document(indexName = "ring", type = "java")
public class RingPO<T> {

    @Id
    private String id;
    @ApiModelProperty(value="数据名称",name="value",example="其他保单")
    private String value;
    @ApiModelProperty(value="数据",name="data",example="18900.00")
    private T data;

}

这里需要注意的点,第一必须有@Document 和id属性。这两个是elasticsearch需要的内容。
实现接口:

@Configuration
public interface DemoElasticsearchRepository extends ElasticsearchRepository<RingPO, String> {
}

这里可以写一些你自定义的方法,你可以理解成这就是dao层。
这个ElasticsearchRepository有一些自带的属性和方法。具体参考如下:

Keyword                                                     Sample
And                                                  `findByTitleAndPrice``findBy属性名1And属性名2
Or                                                  findByTitleOrPrice
Is=                                                     findByTitle
Not                                                     findByTitleNot
Between                                                     findByPriceBetween
LessThanEqual                                                    findByPriceLessThan
GreaterThanEqual                                                     findByPriceGreaterThan
Before                                                   findByPriceBefore
After                                                   findByPriceAfter
Like                                                     findByNameLike
StartingWith                                                    findByNameStartingWith
EndingWith                                                  findByNameEndingWith
Contains/Containing                                                     findByNameContaining
In                                                  findByNameIn(Collection<String>names)
NotIn                                                   findByNameNotIn(Collection<String>names)
Near                                                    findByStoreNear
True                                                    findByAvailableTrue
False                                                   findByAvailableFalse
OrderBy                                                     findByAvailableTrueOrderByNameDesc

相关文章

网友评论

      本文标题:SpringBoot集成elasticsearch

      本文链接:https://www.haomeiwen.com/subject/zhhjektx.html