ElasticSearchとSpringBootの巨大な穴
15084 ワード
ElasticSearchとSpringBootの巨大な穴
elasticsearchを勉強したばかりで、ある人のチュートリアルを見て、バージョンが衝突しないようにして、以下の処理をしました.
インデックスリクエストの作成時にエラーが発生しました:
最初はesのメモリ設定が小さすぎると思っていたが、拡大しても間違っていたが、作成に成功し、無視した.
ドキュメントを作成するときも同じようにエラーが発生します.コードは次のとおりです.
エラーメッセージ:
調べてみると、Validation Failed:1:type is missing;エラーは次の2つのjarパッケージを追加する必要があります
これは公式に提出されたものです.
このときIndexRequestコンストラクション関数を見て、typeが必要です.typeはすぐに廃棄されることを知っていると思いますが、IndexRequest request=new IndexRequest(「chunuo」、「type」)をテストしました.
結果は意外にも使いやすくて、以下の間違いを報告しましたが、少なくとも追加することができます.
そしてspringbootとelasticsearchの互換性の問題を理解し始め、バージョンをロックすると、IndexRequest request=new IndexRequest("chunuo");方法もtypeパラメータを必要とせず、以下のように操作します.
今夜は本当に深い穴に入って、一晩中、同じ問題がもっと多くのパートナーを助けることができることを望んで、今日出会った間違いは、私は検索エンジンから解決策を見つけることができませんでした.
elasticsearchを勉強したばかりで、ある人のチュートリアルを見て、バージョンが衝突しないようにして、以下の処理をしました.
<properties>
<java.version>1.8java.version>
<elasticsearch>7.6.1elasticsearch>
properties>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-data-elasticsearchartifactId>
dependency>
インデックスリクエストの作成時にエラーが発生しました:
Exception in thread "I/O dispatcher 1" java.lang.AssertionError
最初はesのメモリ設定が小さすぎると思っていたが、拡大しても間違っていたが、作成に成功し、無視した.
ドキュメントを作成するときも同じようにエラーが発生します.コードは次のとおりです.
void testAddDocument() throws IOException {
//
User user = new User("wefwef",22,new Date());
//
IndexRequest request = new IndexRequest("chunuo");
//id
request.id("12");
request.timeout(TimeValue.timeValueSeconds(1));
//
request.timeout("1s");
// json
request.source(JSON.toJSONString(user), XContentType.JSON);
// ,
IndexResponse index = restHighLevelClient.index(request, RequestOptions.DEFAULT);
System.out.println(index.toString());
System.out.println(index.status()); // CREATED, update
}
エラーメッセージ:
Exception in thread "I/O dispatcher 1" java.lang.AssertionError
Validation Failed: 1: type is missing;
調べてみると、Validation Failed:1:type is missing;エラーは次の2つのjarパッケージを追加する必要があります
<dependency>
<groupId>org.elasticsearchgroupId>
<artifactId>elasticsearchartifactId>
<version>${elasticsearch}version>
dependency>
<dependency>
<groupId>org.elasticsearch.clientgroupId>
<artifactId>elasticsearch-rest-clientartifactId>
<version>${elasticsearch}version>
dependency>
これは公式に提出されたものです.
このときIndexRequestコンストラクション関数を見て、typeが必要です.typeはすぐに廃棄されることを知っていると思いますが、IndexRequest request=new IndexRequest(「chunuo」、「type」)をテストしました.
結果は意外にも使いやすくて、以下の間違いを報告しましたが、少なくとも追加することができます.
Exception in thread "I/O dispatcher 1" java.lang.AssertionError
そしてspringbootとelasticsearchの互換性の問題を理解し始め、バージョンをロックすると、IndexRequest request=new IndexRequest("chunuo");方法もtypeパラメータを必要とせず、以下のように操作します.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.elasticsearch.clientgroupId>
<artifactId>elasticsearch-rest-high-level-clientartifactId>
<version>${elasticsearch}version>
dependency>
<dependency>
<groupId>org.elasticsearchgroupId>
<artifactId>elasticsearchartifactId>
<version>${elasticsearch}version>
dependency>
<dependency>
<groupId>org.elasticsearch.clientgroupId>
<artifactId>elasticsearch-rest-clientartifactId>
<version>${elasticsearch}version>
dependency>
dependencies>
dependencyManagement>
今夜は本当に深い穴に入って、一晩中、同じ問題がもっと多くのパートナーを助けることができることを望んで、今日出会った間違いは、私は検索エンジンから解決策を見つけることができませんでした.