問題タブ [elasticsearch-high-level-restclient]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
elasticsearch - 明確な高レベルの REST クライアント エラスティック クエリ
High Level Rest Client
個別の値でドキュメントを検索するために使用する方法。ドキュメンテーションは、によってAggregation framework
異なるものを見つけることについて話しています。しかし、 を使用した例は見つかりませんでした。で区別するにはどうすればよいですか。documents
field
High Level Rest Client
documents
field
データ
期待される出力 ("Field1" : "Value1" を含む任意のドキュメント)
以下のコードでも同じ結果が得られます。
java - Elastic Search の高レベル REST JAVA クライアントとのマッピングを非同期的に配置 - 非推奨のエラー
この Elastic Search ドキュメントに従って、「連絡先」という名前の Elastic Search インデックスのマッピングを作成しています。
コードを実行すると、
マッピングの作成に失敗しました: 検証に失敗しました: 1: マッピング タイプがありません。
これが私のコードです。
ドキュメントの例に従っているので、これは奇妙です。Java クライアントのバージョン 7.6.0 を使用しています。
アップデート。Java クライアントのバージョン 7.5.2 にダウングレードしたのは、これが Elastic Search デプロイメントのバージョンだからです。put mapping コマンドが機能するようになりました。ただし、非同期呼び出しを機能させることができません。その呼び出しのコメントを外すと、Eclipse は、この関数は非推奨であり、新しい関数を使用する必要があることを通知します。ただし、新しいメソッドは非推奨のメソッドと同じように見えます (同じパラメーター、同じ名前)。違いは何ですか?また、Eclipse に新しいバージョンを使用するように指示するにはどうすればよいでしょうか?
非推奨。このメソッドは、非推奨の機能であるタイプを参照する古いリクエスト オブジェクトを使用します。代わりに、新しいリクエスト オブジェクトを受け入れるメソッド putMappingAsync(PutMappingRequest, RequestOptions, ActionListener) を使用する必要があります。
同期のもののみ。
// これは機能しない非同期呼び出しです。// client.indices().putMappingAsync(request, RequestOptions.DEFAULT, listener);
java - Elastic Search の高レベル REST クライアント for JAVA を使用した集計クエリ
集計クエリを使用して Elastic Search インデックスを検索するための有効な cURL 要求があります。必要に応じて、応答には、指定された集計フィールドの値のリストと、これらの各値に一致するドキュメントの数が含まれます。たとえば、連絡先を郵便番号ごとに集計すると、応答には 50 の郵便番号と、これらの郵便番号ごとの連絡先の数が含まれます。偉大な。
これで、同じ集計クエリを実行する JAVA 関数も作成できました。集約応答でネストされたデータを解析するにはどうすればよいですか? 特に、各バケットの key 変数と docCount 変数を取り出したいと思います。オンラインや Elastic ドキュメントでこの例を見つけるのに苦労しています。
これが私がこれまでに持っているものです...
実際、searchResponse には集計のリストが含まれています。ただし、byZipAggregation は null です。home_zip 集計データをオブジェクトとして取得するにはどうすればよいですか? 私はこのElasticドキュメントで作業しています...
https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/_bucket_aggregations.html
searchResponse の値は次のとおりです。
より多くの文書データがここにありました。この例を簡略化するために削除しました。
Aggregations オブジェクト全体を Javascript で記述されたクライアント コードに渡し、Javascript コード内の目的のフィールドを解析できることに気付きました。ただし、不要なデータをクライアントに渡さないように、このすべての解析を Java サーバー コードで実行したいと考えています。さらに、応答の一部が大きすぎてサーバーがクライアントに渡せないようです。では、Java でバケット キーと docCounts を解析するにはどうすればよいでしょうか?