使用springboot与本地弹性搜索实例无法正常工作

时间:2017-11-27 21:10:17

标签: java elasticsearch spring-boot spring-data

我想在spring启动应用程序中使用elasticSearch存储库。 我有一个本地正在运行的弹性搜索 5.5.2 实例 我已经搜索了一段时间,尝试了几个来源的这么多组合,但没有任何东西可以产生一个有效的解决方案,现在我被错误

困住了
  

使用名称' elasticsearchTemplate'

创建bean时出错

我做错了什么?

这是我的主要

  @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
    public class Application {

        public static void main(String[] args) {

            Logger logger = LoggerFactory.getLogger("chapters.introduction.HelloWorld1");
            try
            {
                SpringApplication.run(Application.class, args);
            }
            catch(Exception e)
            {
                logger.info("caught an exception",e);
            }

        }
}

config

@Configuration
@EnableElasticsearchRepositories(basePackages = "hello")
@ComponentScan(basePackages = {"hello"})
public class config {

    @Bean
    public NodeBuilder nodeBuilder() {
        return new NodeBuilder();
    }

    @Bean
    public ElasticsearchOperations elasticsearchTemplate() {
        Settings.Builder elasticsearchSettings =
                Settings.settingsBuilder()
                        .put("http.enabled", "false") // 1
                        .put("path.data", "/home/nad/elasticsearch_data") // 2
                        .put("path.home", "/home/nad/Downloads/elasticsearch-5.5.2"); // 3



        return new ElasticsearchTemplate(nodeBuilder()
                .local(true)
                .settings(elasticsearchSettings.build())
                .node()
                .client());
    }

}

我的 build.gradle 文件

group 'FirstWebServer'
version '1.0-SNAPSHOT'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.8.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'

jar {
    baseName = 'gs-spring-boot'
    version =  '0.1.0'
}

repositories {
    maven { url "http://repo.spring.io/milestone" }
    mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    // tag::jetty[]
    compile("org.springframework.boot:spring-boot-starter-web") {
        exclude module: "spring-boot-starter-tomcat"
    }
    compile("org.springframework.boot:spring-boot-starter-jetty")
    // end::jetty[]
    // tag::actuator[]
    compile("org.springframework.boot:spring-boot-starter-actuator")
    // end::actuator[]
    //compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-elasticsearch', version: '1.2.5.RELEASE'
    compile group: 'org.springframework.data', name: 'spring-data-elasticsearch', version: '3.0.1.RELEASE'
    compile group: 'org.springframework.boot', name: 'spring-boot-starter-parent', version: '2.0.0.M6', ext: 'pom'
    compile("org.springframework.boot:spring-boot-starter-data-jpa")
    compile group: 'org.projectlombok', name: 'lombok', version: '1.16.18'

    testCompile("junit:junit")
}

正确的配置方式是什么?一些示例显示 application.properties 配置,有些不这样做。 那么兼容性,有些显示只有elasticsearch 2。 * 或更低,有些人说 5

真的令人困惑:(

非常感谢您的帮助

0 个答案:

没有答案