如何使用Spring Boot设置ElasticSearch的数据目录

时间:2015-04-12 19:44:07

标签: elasticsearch spring-boot

我的问题类似于[1] 我有一个spring boot appplication,我在elasticsearch中保存了一些文档。每次在当前目录中的数据目录中创建索引。我想将此默认路径更改为给定的路径。我怎样才能做到这一点?这么简单的任务需要几个小时才能找到它。

我尝试了很多东西:

  1. @Setting(setting="/data/elasticsearch")
  2. 在elasticseacrh.properties和application.properties文件中:
    1. path.data
    2. spring.data.elasticsearch.path.data
  3. 没有运气。

3 个答案:

答案 0 :(得分:5)

  1. 在我的应用程序类中添加配置文件的路径:

    @Setting(settingPath = "/home/topic/src/main/resources/elasticsearch.properties")
    
  2. 在文件中设置path.data属性:

    path.data=/Users/mimis/Desktop/data
    
  3. 诀窍。

    <强>更新
    使用Spring Boot 1.3.0,我们可以使用spring.data.elasticsearch.properties.*前缀在应用程序属性文件中添加任何Elasticsearch属性。例如:

    spring.data.elasticsearch.properties.data.path=/path/to/data
    

答案 1 :(得分:4)

对我来说(Grails / Spring Boot 1.3.3),以下配置效果更好:

spring.data.elasticsearch.properties.path.data=/path/to/data
spring.data.elasticsearch.properties.path.logs=/path/to/logs

答案 2 :(得分:0)

我刚遇到这个问题并且所提供的答案都没有解决,接受答案得到了错误的属性

 spring.data.elasticsearch.properties.path.data=/path/to/data

不是

 spring.data.elasticsearch.properties.data.path=/path/to/data

虽然有了这个值,但是你会遇到一个问题,因为你写的是机器的根目录(在我的情况下是一个mac),它需要一个我无法提供的访问权限,因此elasticsearch模板将无法启动,而是你需要将值设置为

spring.data.elasticsearch.properties.path.data=path/to/data

这将从应用程序的上下文创建路径,该应用程序是项目的根目录,应用程序已有权写入该目录