2

JEST クライアントを使用して、リモートにある ElasticSearch インデックスを検索しようとしています。

しかし、私は問題に遭遇しました-さまざまなビルダーを使用して構築されたものであろうと、デフォルトのESクエリのみであろうと、すべてのクエリが com.google.gson.stream.MalformedJsonExceptionを返します

コード:

String URL = "http://api.exiletools.com:80";
String API_KEY = "DEVELOPMENT-Indexer";

 JestClientFactory factory = new JestClientFactory();
        factory.setHttpClientConfig(new HttpClientConfig.Builder(URL)
                .defaultCredentials("apikey", API_KEY)
                .build());
 JestClient client = factory.getObject();

  qb = QueryBuilders
                    .boolQuery()
                    .must(QueryBuilders.termQuery("attributes.league", "Standard"))
                    .must(new TermQueryBuilder("attributes.equipType", "Ring"))
                    .must(new TermQueryBuilder("shop.verified", "yes"));
  searchSourceBuilder = new SearchSourceBuilder();
  searchSourceBuilder.query(qb);

  query = searchSourceBuilder.toString();

  search = new Search.Builder(query).build();

  client.execute(search); // Here I get the error

最終テストとして、Jest 統合テストの例から見つけた最小のクエリをコピーし、検索用語を次のように置き換えました。

        query = "{\n"
                + "    \"query\" : {\n"
                + "        \"term\" : { \"shop.chaosEquiv\" : \"167\" }\n"
                + "    }\n"
                + "}";

このクエリを出力ストリームからコピーすると、次のようになります。

{
    "query" : {
        "term" : { "shop.chaosEquiv" : "167" }
    }
}

末尾の空白などはありません。私には有効に見えます。

それでも同じエラーが発生します。誰が何が起こっているのか分かりますか?

4

0 に答える 0