首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用本地连接ES集群?

如何使用本地连接ES集群?
EN

Stack Overflow用户
提问于 2017-04-17 06:33:33
回答 1查看 1.2K关注 0票数 2

我刚开始通过一个演示项目学习ElasticsearchSpring Data Elasticsearch,然后我就可以开始运行了。

使用brew install elasticsearch在Mac上安装brew install elasticsearch,并使用brew service start elasticsearch启动它。

对于这个项目,

代码语言:javascript
复制
@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文件中,

代码语言:javascript
复制
spring.data.elasticsearch.cluster-name=shubham_lookup_cs_default
spring.data.elasticsearch.repositories.enabled=true

我能够通过Spring执行CRUD和其他DB操作,并对其进行测试,工作良好。

我的问题是,我如何通过命令行查询它?

当我使用curl 'http://localhost:9200/?pretty'时,我会返回:

代码语言:javascript
复制
{
  "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_shubhamelasticsearch_shubham,我猜这是默认的。

我在想的是,我在这里错过了一些非常基本的东西。我的机器上现在有两个不同的集群。

有关如何知道elasticsearch项目正在工作的更多信息,我创建了一些实体并将其持久化,使用控制器进行查询。

因此,我有以下问题:

  1. 如何使用CURL通过命令行通过Spring Data Elasticsearch生成的集群连接?
  2. 是否有任何用户界面可以让我看到elasticsearch中的所有数据,也许可以使用Kibana
  3. Spring Data Elasticsearch是否实际使用默认集群,而不是我在application.properties文件中提到的集群名称?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-18 05:33:37

显然,不像cluster_name那样预期的elasticsearch_shubham是elasticsearch_shubham,我猜这是默认的。

实际上,如果您希望您的集群名为“shubham_lookup_cs_default”,则需要更新ES_HOME/config/弹性搜索. you

代码语言:javascript
复制
cluster.name: my_cluster

集群名称的默认值是elasticsearch,如果您想要两个集群,我不确定我们是否可以创建两个集群。看看这个答案,link

如何使用CURL通过命令行通过生成的集群进行连接?

我不确定,如果弹簧数据弹性搜索会产生集群。弹簧数据弹性只会指向现有的集群。如果您想运行群集,而不是直接运行:-

代码语言:javascript
复制
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”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43446371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档