私はデモプロジェクトでElasticsearch
とSpring 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
プロジェクトが動作していることを知る方法の詳細については、いくつかのエンティティを作成して永続化し、コントローラを使用してクエリを実行しました。
だから、私は次のような質問があります。
- 私はCURLを使用して、コマンドラインから
Spring Data Elasticsearch
によって作られたクラスタを介して接続する方法を教えてください。 elasticsearch
のすべてのデータを見ることができるユーザーインターフェイスはありますか?おそらくKibana
を使用していますか?application.properties
ファイルで述べたクラスタ名ではなく、実際にデフォルトクラスタを使用していますか?Spring Data Elasticsearch
ですか?
最後のポイントは 'elasticsearch.yml'をチェックし、' spring.data.elasticsearch.properties.path 'と同じパスを指しています。 .data'をSpringプロジェクトで使用しています。しかし今、私はCLIを介してElasticsearchを開始することができませんが、プロジェクトは正常に動作しています。例外は 'IllegalStateException:ノードロックを取得できませんでした。ロックID [0]で[]を試しました。おそらくこれらの場所は書き込み可能ではなく、複数のノードは増加せずに開始されたでしょう。明らかに、ロックが維持されます。 CLIとSpring Dataプロジェクトで同じデータをどのように維持できますか? –