問題タブ [elasticsearch-jest]
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.
java - _msearch と _search のパフォーマンス
_msearch
一度に複数の検索に使用されます。ネットワークのオーバーヘッドが削減されるため、これだけでもパフォーマンスが向上します。現在、単一のクエリに対して_msearch
、エンドポイントのように使用しています。_search
将来のバッチ処理のために、このメカニズムを整備したいと考えていました。バッチ処理を利用するまで、オーバーヘッドは発生しますか? 単一のクエリ_msearch
とまったく同じように動作しますか?_search
java - エラスティック検索 1.5 ジオ ポイントの問題
ES 1.5 で地理的距離の並べ替えを取得しようとしています。geo_point タイプのマッピングは次のとおりです。
次のようにインデックス データを追加します。
ドキュメントのインデックス作成後にエラスティック検索のマッピングを確認すると、マッピングが異なります。
マッピングが変更されるため、地理的距離で並べ替えることができません。
java - NoClassDefFoundError: org/elasticsearch/index/query/QueryBuilder
Elasticsearch、Jest、および javax サーブレットを使用しているプロジェクトがあります。私の pom.xml ファイルは次のようになります。
Eclipse から Tomcat Apache 8.5.6 を実行しています。サーバーを実行しようとすると、"Server Tomcat v8.5 Server at localhost failed to start" というエラーが表示されます。スタック トレースは次のようになります。
「java.lang.NoClassDefFoundError: org/elasticsearch/index/query/QueryBuilder」という行が表示されます --> しかし、Maven 依存関係を展開することで org.elasticsearch.index.query.QueryBuilder クラスを表示できます。
エラーは pom.xml ファイルに何らかの形であると思いますが、サーバーの起動を妨げている原因を正確に見つけることができません。
java - JEST Elastic Search REST Java API での SSL 証明書の組み込みに関する問題
Jest API を使用して Elasticsearch(ELK) に接続する際に問題に直面しています。SCROLLとSCANをサポートし、証明書ベースの認証もサポートするELK用の残りのJava APIを探しています。
Jest と Flummi が利用可能なものであることがわかりました。
Jest は人気があり、サポートも充実しているため、使用しようとしています。
ELK データベースには認証用の証明書が必要です。これは個人証明書にインストールされています。
私の質問は、Jest クライアントを使用して、証明書を使用して HTTP 要求を行うにはどうすればよいですか? いくつかのコードを見つけましたが、役に立ちません。私のコードは以下です。
Plsは問題について提案します。
java - 最初の実行操作後の Jest クライアントのシャットダウン
Amazon S3 からいくつかのファイルを読み取り、そのデータを AWS ElasticSearch Service にプッシュする関数を含む AWS Lambda パッケージ (Java) を作成しました。私は AWS Elastic Search を使用しているため、トランスポート クライアントを使用できません。その場合、Jest クライアントを使用して REST 経由でプッシュしています。問題は Jest クライアントにあります。
これが私の Jest クライアント インスタンスです。
AWS Elasticsearch ドメインは IAM アクセス ポリシーによって保護されているため、AWS によって承認されるようにリクエストに署名します (例はこちら)。POJO を使用してドキュメントのインデックスを作成します。
私が直面している問題は、jest クライアント インスタンスで複数のアクションを実行できないことです。たとえば、最初にインデックスを作成した場合:
その後、たとえば、一括インデックス作成を行いたいと思いました。
最初のアクションのみが実行され、2 番目のアクションは失敗します。何故ですか?複数のアクションを実行することは可能ですか?
Morover、提供されたコードを使用して、ドキュメントにインデックスを付けたいときに、20 を超える一括操作を実行できません。基本的には 20 前後で問題ありませんが、それ以上になるとclient.execute(bulkIndexBuilder.build());
実行されず、クライアントがシャットダウンします。
どんな助けや提案も感謝します。
更新: AWS ElasticSearch では、個々のノードへの接続が許可されていないようです。Jest クライアントでノード検出をオフにするだけで、.discoveryEnabled(false)
すべての問題が解決しました。この答えは役に立ちました。
java - エラスティック検索の Jest クライアントでの HTTPS サポート
HTTPS 接続HTTPS/SSL サポートを介して Elasticsearch に接続しようとしています。
コードは次のとおりです
http接続を使用して接続できます。しかし、HTTPS接続を使用して接続しようとすると、次のエラーが発生します
このエラーを見つけたらお知らせください。コードに問題はありますか?
java - Elasticsearch JEST 日付シリアライゼーション Java
ESジェストを使用しています。検索して回答を得ることができます。しかし、Date
プロパティでシリアル化を行うと、シリアル化null
後に応答が得られました。
以下は、ES ドキュメント インデックスと検索結果のクラスです。
日付のシリアル化には次のコードがあります。
ES からの応答:
私のシリアル化コード:
連載後、私はresponse = null
から日付プロパティを削除するとindexDocument
、シリアル化された応答が表示されます。ただし、日付プロパティでは機能しません。何が悪かったのか?
java - Jest SearchResult ヒットをドメイン オブジェクトにキャストする方法
私はJestを使用してElasticsearchにクエリを実行していますが、これまでのところ素晴らしいです。Jest のドキュメントには次のように書かれています。
結果はドメイン オブジェクトのリストにキャストできます。
... そしてこの例を示します:
getSourceAsObjectList
は非推奨であり、私は以下を使用しています:
...不変ImmutableConceptDocument
生成クラスはどこにありますか-それ以外の場合は、検索結果の下に表示される名前の属性を持つ非常に単純なPOJOです。source
ただし、上記の行を使用すると、ソース プロパティがマップされずscore
、type
、index
などの他の詳細がマップされます。
私は何が欠けていますか?ドメイン クラスには特定の Jest アノテーションなどを付ける必要がありますか?
単体テストでも良い例は見当たりません。これはにマッピングされObject.class
、マッピングの例は表示されません。
不変クラスは次のとおりです。
...Category
は列挙型です。
java - JestClient は、java.lang.NoSuchMethod エラーで動作しないことを提案します
すべての検索で、Jest クライアントは次のように uri で初期化されます。
次のようなURIでクライアントを初期化するにはどうすればよいですか?
Ipas JestClient と単語のメソッドで次のコードを使用しています。
ただし、エラーが発生します
java.lang.NoSuchMethodError: io.searchbox.client.http.JestHttpClient.getElasticSearchServer()Ljava/lang/String; ' client.execute(suggest) 中。
デバッグ中に、suggest変数の値をコピーしてSenseに貼り付けたところ、期待どおりに動作しています。
次のmaven依存関係を使用しています_all/_search
実行中のエラスティック バージョンは 5.0.1 で、Suggest には次の依存関係がインポートされています。
助言がありますか?
elasticsearch - JSON クエリを使用しない Jest クライアントでの集計
Elasticsearch で集計を調査しているときに、HTTP ベースの JEST クライアントでは JSON クエリを介して集計機能を実装できるが、TCP ベースの Java クライアントでは実装できないことがわかりました。
私は Jest クライアントを使用しており、正常に機能するクエリ文字列を介して集計を実装しています。しかし、フィルターが増えると静かになり、面倒だと感じます。JEST クライアント (TCP クライアントの集計ビルダーのようなもの) で JSON クエリを使用する以外に集計を実装する方法があるかどうか、またそれをどのように実装するかを知りたいです。