如何连接到本地使用 Spring Data Elasticsearch 创建的 ES 集群?
How to connect to ES cluster locally made using Spring Data Elasticsearch?
我刚开始通过演示项目学习 Elasticsearch
和 Spring Data Elasticsearch
,我能够起床 运行。
使用 brew install elasticsearch
在 Mac 上安装 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 Data JPA 执行 CRUD 和其他数据库操作并对其进行了测试,效果很好。
我的问题是,如何通过命令行查询?
当我使用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
,我猜这是默认值。
我在想的是我在这里遗漏了一些非常基本的东西。我的机器上现在有 2 个不同的集群。
有关我如何知道 elasticsearch
项目正在运行的更多信息,我创建了一些实体并将它们持久化,使用控制器进行查询,正在运行。
所以,我有以下问题:
- 如何使用 CURL 通过命令行连接
Spring Data Elasticsearch
创建的集群?
- 是否有任何用户界面可以让我查看
elasticsearch
中的所有数据,也许使用 Kibana
?
Spring Data Elasticsearch
实际上是在使用默认集群,而不是我在application.properties
文件中提到的集群名称吗?
Clearly, not the expected one as cluster_name is elasticsearch_shubham
which is default I guess.
实际上,如果您想要名称为 'shubham_lookup_cs_default' 的集群
比你需要更新 ES_HOME/config/elasticsearch.yml
cluster.name: my_cluster
集群名称的默认值为elasticsearch
如果你想要两个集群,我不确定我们是否可以创建两个。检查这个答案 link .
How do I connect through the cluster made by Spring Data Elasticsearch
through command line, using CURL?
我不确定,如果 spring 数据弹性搜索将创建集群。 Spring 数据弹性将仅指向现有集群。
如果你想 运行 聚类而不只是做 :-
cd elasticsearch-5.3.0/bin/
./elasticsearch
Is there any User Interface through which I can see all data in
elasticsearch, maybe using Kibana?
是的,Kibana 用于实时分析。它将在 Discover Tab 中显示所有数据。只需点击发现 :-
Is Spring Data Elasticsearch actually using the default cluster,
instead of the cluster name I mentioned in application.properties
file?
可能 'shubham_lookup_cs_default' 不存在于 ES_HOME/config/elasticsearch.yml 中。检查是否不存在而不是更新,肯定会指向 'shubham_lookup_cs_default'
我刚开始通过演示项目学习 Elasticsearch
和 Spring Data Elasticsearch
,我能够起床 运行。
使用 brew install elasticsearch
在 Mac 上安装 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 Data JPA 执行 CRUD 和其他数据库操作并对其进行了测试,效果很好。
我的问题是,如何通过命令行查询?
当我使用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
,我猜这是默认值。
我在想的是我在这里遗漏了一些非常基本的东西。我的机器上现在有 2 个不同的集群。
有关我如何知道 elasticsearch
项目正在运行的更多信息,我创建了一些实体并将它们持久化,使用控制器进行查询,正在运行。
所以,我有以下问题:
- 如何使用 CURL 通过命令行连接
Spring Data Elasticsearch
创建的集群? - 是否有任何用户界面可以让我查看
elasticsearch
中的所有数据,也许使用Kibana
? Spring Data Elasticsearch
实际上是在使用默认集群,而不是我在application.properties
文件中提到的集群名称吗?
Clearly, not the expected one as cluster_name is elasticsearch_shubham which is default I guess.
实际上,如果您想要名称为 'shubham_lookup_cs_default' 的集群 比你需要更新 ES_HOME/config/elasticsearch.yml
cluster.name: my_cluster
集群名称的默认值为elasticsearch 如果你想要两个集群,我不确定我们是否可以创建两个。检查这个答案 link .
How do I connect through the cluster made by Spring Data Elasticsearch through command line, using CURL?
我不确定,如果 spring 数据弹性搜索将创建集群。 Spring 数据弹性将仅指向现有集群。 如果你想 运行 聚类而不只是做 :-
cd elasticsearch-5.3.0/bin/
./elasticsearch
Is there any User Interface through which I can see all data in elasticsearch, maybe using Kibana?
是的,Kibana 用于实时分析。它将在 Discover Tab 中显示所有数据。只需点击发现 :-
Is Spring Data Elasticsearch actually using the default cluster, instead of the cluster name I mentioned in application.properties file?
可能 'shubham_lookup_cs_default' 不存在于 ES_HOME/config/elasticsearch.yml 中。检查是否不存在而不是更新,肯定会指向 'shubham_lookup_cs_default'