2017-04-17 7 views
0

私はデモプロジェクトでElasticsearchSpring Data Elasticsearchを学び始めました。私は立ち上げて稼働することができました。Spring Data Elasticsearchを使用してローカルに作成されたESクラスタに接続する方法は?

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 

では、私は春データJPAを通じて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として期待される1は私が推測するデフォルトでelasticsearch_shubhamではありません。

ここで私は非常に基本的なものが欠けていると思います。私のマシンには2つの異なるクラスタが存在します。

elasticsearchプロジェクトが動作していることを知る方法の詳細については、いくつかのエンティティを作成して永続化し、コントローラを使用してクエリを実行しました。

だから、私は次のような質問があります。

  1. 私はCURLを使用して、コマンドラインからSpring Data Elasticsearchによって作られたクラスタを介して接続する方法を教えてください。
  2. elasticsearchのすべてのデータを見ることができるユーザーインターフェイスはありますか?おそらくKibanaを使用していますか?
  3. application.propertiesファイルで述べたクラスタ名ではなく、実際にデフォルトクラスタを使用していますか?Spring Data Elasticsearchですか?

答えて

0

明らかに、CLUSTER_NAMEとして期待される一つは、私が推測するデフォルトでelasticsearch_shubham ではありません。あなたが更新する必要があるよりも、名「shubham_lookup_cs_default」 を使用してクラスタをしたい場合は、2つのクラスタを使用する場合は

は、実際には、クラスタ名のES_HOME /設定/ elasticsearch.yml

cluster.name: my_cluster 

デフォルト値は elasticsearchです私は2つを作ることができるかどうかわからない。この回答を確認してくださいlink

CURLを使用して、Spring Data Elasticsearch で作成されたクラスタをコマンドラインで接続するにはどうすればよいですか?

私は確信していませんが、春のデータ弾性検索ではクラスタを作成します。 Springデータの弾性は既存のクラスタを指し示すだけです。 あなただけ行うよりも、クラスタを実行する場合: -

cd elasticsearch-5.3.0/bin/ 
./elasticsearch 

を私は多分Kibanaを使用して、 elasticsearch内のすべてのデータを見ることができ、それを通して任意のユーザーインターフェイスはありますか?

はいリアルタイム解析には木場があります。すべてのデータがDiscoverタブに表示されます。発見の上だけをクリックしてください: -

enter image description here

なく、実際に私がapplication.properties ファイルに記載されたクラスタ名のデフォルトのクラスタ、 を使用して春データElasticsearchですか?

'shubham_lookup_cs_default'がES_HOME/config/elasticsearch.ymlに存在しない可能性があります。更新よりも存在していないか確認してください。確かに 'shubham_lookup_cs_default'を指します。

+0

最後のポイントは 'elasticsearch.yml'をチェックし、' spring.data.elasticsearch.properties.path 'と同じパスを指しています。 .data'をSpringプロジェクトで使用しています。しかし今、私はCLIを介してElasticsearchを開始することができませんが、プロジェクトは正常に動作しています。例外は 'IllegalStateException:ノードロックを取得できませんでした。ロックID [0]で[]を試しました。おそらくこれらの場所は書き込み可能ではなく、複数のノードは増加せずに開始されたでしょう。明らかに、ロックが維持されます。 CLIとSpring Dataプロジェクトで同じデータをどのように維持できますか? –

関連する問題