我刚开始通过一个演示项目学习Elasticsearch和Spring Data Elasticsearch,然后我就可以开始运行了。
使用brew install elasticsearch在Mac上安装brew install elasticsearch,并使用brew service start elasticsearch启动它。
对于这个项目,
@Configuration
@EnableElasticsearchRepositories(basePackages = "com.shubham.entities")
@ComponentScan(basePackages = "com.shubham")
public class DataConfig {
private static Logger logger = LoggerFactory.getLogger(DataConfig.class);
@Value("${elasticsearch.home}")
private String elasticsearchHome;
@Bean
public NodeBuilder nodeBuilder() {
return new NodeBuilder();
}
@Bean
public ElasticsearchOperations elasticsearchTemplate() {
try {
final File tmpDir = File.createTempFile("elasticsearch_data", Long.toString(System.nanoTime()));
final Settings.Builder elasticsearchSettings =
Settings.settingsBuilder().put("http.enabled", "true")
.put("index.number_of_shards", "1")
.put("path.data", new File(tmpDir, "data").getAbsolutePath()) // 2
.put("path.logs", new File(tmpDir, "logs").getAbsolutePath()) // 2
.put("path.work", new File(tmpDir, "work").getAbsolutePath());
return new ElasticsearchTemplate(nodeBuilder()
.local(true)
.settings(elasticsearchSettings.build())
.node()
.client());
// @formatter:on
} catch (final IOException ioex) {
logger.error("Cannot create temp dir", ioex);
throw new RuntimeException();
}
}
}上面配置文件中的elasticsearchHome实际上是空的,我想知道为什么这个仍然有效。在application.properties文件中,
spring.data.elasticsearch.cluster-name=shubham_lookup_cs_default
spring.data.elasticsearch.repositories.enabled=true我能够通过Spring执行CRUD和其他DB操作,并对其进行测试,工作良好。
我的问题是,我如何通过命令行查询它?
当我使用curl 'http://localhost:9200/?pretty'时,我会返回:
{
"name" : "4IVQcts",
"cluster_name" : "elasticsearch_shubham",
"cluster_uuid" : "WxCAzE51TfS7P4eFYJpvCA",
"version" : {
"number" : "5.3.0",
"build_hash" : "3adb13b",
"build_date" : "2017-03-23T03:31:50.652Z",
"build_snapshot" : false,
"lucene_version" : "6.4.1"
},
"tagline" : "You Know, for Search"
}显然,不像cluster_name那样预期的elasticsearch_shubham是elasticsearch_shubham,我猜这是默认的。
我在想的是,我在这里错过了一些非常基本的东西。我的机器上现在有两个不同的集群。
有关如何知道elasticsearch项目正在工作的更多信息,我创建了一些实体并将其持久化,使用控制器进行查询。
因此,我有以下问题:
Spring Data Elasticsearch生成的集群连接?elasticsearch中的所有数据,也许可以使用KibanaSpring Data Elasticsearch是否实际使用默认集群,而不是我在application.properties文件中提到的集群名称?发布于 2017-04-18 05:33:37
显然,不像cluster_name那样预期的elasticsearch_shubham是elasticsearch_shubham,我猜这是默认的。
实际上,如果您希望您的集群名为“shubham_lookup_cs_default”,则需要更新ES_HOME/config/弹性搜索. you
cluster.name: my_cluster集群名称的默认值是elasticsearch,如果您想要两个集群,我不确定我们是否可以创建两个集群。看看这个答案,link。
如何使用CURL通过命令行通过生成的集群进行连接?
我不确定,如果弹簧数据弹性搜索会产生集群。弹簧数据弹性只会指向现有的集群。如果您想运行群集,而不是直接运行:-
cd elasticsearch-5.3.0/bin/
./elasticsearch有什么用户界面可以让我在elasticsearch中看到所有数据,或者使用Kibana?
是的,Kibana在那里进行实时分析。它将在Discover中显示所有数据。只要点击“发现”:-

Spring是否实际上使用默认集群,而不是我在application.properties文件中提到的集群名称?
可能是'shubham_lookup_cs_default‘不在ES_HOME/config/弹性搜索. not中。检查如果不存在而不是更新,它肯定会指向“shubham_lookup_cs_default”
https://stackoverflow.com/questions/43446371
复制相似问题