問題タブ [elasticsearch-java-api]

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.

0 投票する
1 に答える
860 参照

java - Elasticsearch Java API あいまい検索テスト

ネイティブの Elasticsearch Java API に問題があります。名前属性でオブジェクトを検索するメソッドを作成したかったのです。ここまでは簡単でした。その後、このメソッドの JUnit テストを作成したいと思いました。ここから問題が始まります。

このテストが問題なく機能する場合もあれば、何かが見つかることを確認するためにいくつかのドキュメントを作成したとしても、検索結果に何も含まれない場合もあります。しかし、elasticsearch のデータベースを見ると、ドキュメントが存在するので、実装が正しくないか、検索 API に深刻な遅延があると思います。

テストされているコードは次のとおりです。

Elastic 1.7.0 を使用して Java 8 で作業しています。問題の位置を特定できる人はいますか? さらに詳しい情報が必要な場合は、お気軽にお問い合わせください。

0 投票する
2 に答える
1861 参照

elasticsearch - エラスティックサーチ NoNodeAvailableException

Elasticsearch から次のエラーが表示されます。

Ubuntu で Elasticsearch 1.7.2 を実行しています。

Elasticsearch.yml で行った変更

接続コード

エラスティック クライアントからデータを取得する

私は何を間違っていますか?

0 投票する
1 に答える
633 参照

java - リモートクラスターノードに接続しようとすると、接続がすぐに中止される

TransportClient を使用して、Java アプリケーションから Elasticsearch クラスターに接続しようとしています。

ローカルで実行されているクラスターへの接続のテストに成功しました。

これで、EC2-Cloud にリモート クラスターがセットアップされました。REST インターフェースを介してアクセスすると、Kibana も機能します。

アプリケーションを Elasticsearch ノードで直接正常に実行できます。

ただし、別のホストからリモートで接続しようとすると、ログには接続が成功したことが示されますが、すぐに「ホスト マシンのソフトウェアによって確立された接続が中止されました」というエラーが表示されます。

サーバーとクライアントの両方が同じバージョンの Elasticsearch を実行していることを確認しました。また、ファイアウォール構成では、ポート 9300 での通信を許可する必要があります。これは、クラスター ノードが相互に通信するためにも必要です。

私の簡単なテストは次のようになります。

また、クラスター名が設定されていないなど、いくつかの一般的なことを確認しようとしました。

また、まったく別のポートを使用すると、このエラー メッセージではなく、期待どおりにタイムアウトが発生します。したがって、ポートの動作は明らかに異なります。

どこから見始めますか?これは、接続がすぐに拒否されるのではなく、しばらくしてから切断されるファイアウォールの問題でしょうか?

0 投票する
3 に答える
20562 参照

amazon-web-services - エラスティックJavaクライアントを使用してaws elasticsearchサービスと話す方法は?

AWS Elasticsearch サービス(EC2 ではない)を使用して Elasticsearch サーバーをセットアップしました。エンドポイントhttps://xxx-xxxxxxxx.us-west-2.es.amazonaws.com/が表示され、このエンドポイントをクリックすると (ポートが指定されていないことに注意してください)、期待される

問題は、ポート番号なしでelasticsearch Javaクライアントを介してこれを取得するにはどうすればよいですか? 私が得るサンプルコードは

このコードを使用して「host1」をエンドポイントに置き換えると、「NoNodeAvailableException」が発生します。

ps: 私が使用している Java クライアントのバージョンは 2.0.0 です。

編集 最終的に、サードパーティの REST クライアントであるJestを使用することにしました。しかし、Brooks が以下で回答したことも非常に役立ちます。AWS は、http にポート 80 を使用し、https にポート 443 を使用します。私にとってのブロッカーは、私が推測するファイアウォールでした。

Edit2 AWS ES サービスのドキュメントには、明示的に次
のように記載されています。サービスはポート 80 で HTTP をサポートしていますが、TCP トランスポートはサポートしていません。

0 投票する
1 に答える
3655 参照

java - Match Phrase (Exact Search) 句を使用した Elasticsearch Java API Boost クエリ

私の最終的な目標は、入力されたフレーズに対して完全一致検索 (例: テスト タイプ検索) を実行し、その正確なフレーズが探している列に一致すると結果をブーストすることです。

これには、Elasticsearch Java API を使用しています。以下のコードを見つけてください。

この正確な値を含むインデックス内のフィールドをブーストする方法を知りたいです。

上記の応答は、正確には「テスト タイプ検索」ではなく、「テスト コードはこのタイプの検索に使用されます」という値を持つ応答も返します。どうすればこれを修正できますか?

適切な Elasticsearch Java API ドキュメント (2.0.0) を見つける方法はありますか?

0 投票する
1 に答える
4442 参照

java - Elasticsearch must_not がフィルター句で動作しない

私は医療プロジェクトに取り組んでおり、そこでは複数の質問とそれに付随するトピックがあります。問題は、次のコードは正常に機能しますが、'must' 句では正常に機能するのに対し、'must_not' フィルターを考慮していないことです。これで私を助けてください。

また、コードをJavaに変換する必要があります.Javaに変換しようとしていますが、次のコードに固執しています。

「stopdata」インデックスのマッピングは次のとおりです。

上記のインデックスのサンプル データを追加する

0 投票する
1 に答える
114 参照

elasticsearch - Elasticsearchで配列フィールドを使用して正確にフレーズを見つけるにはどうすればよいですか?

singers次のようなフィールド マッピングを持つインデックスがあります。

次のようなデータの例:

ここで、インデックスが正確に歌手名「Đàm Vĩnh Hưng」を持っているかどうかを調べたいのですが、どうすればそれを行うことができますか?

現在、私は試しました:

しかし、結果は空です。

どんなアドバイスでも大歓迎です。君たちありがとう。

試してみたところ、 を使用すると解決しましたmatch_phrase。同じ問題に遭遇した人のためにこれを保持します。これを閉じてください。ありがとうございました。

0 投票する
1 に答える
1182 参照

elasticsearch - Springデータelasticsearch:エンティティフィールドにソート値を設定

spring-data-elastic search を使用した geo distance sort を使用して、elasticsearch から最寄りの店舗を検索します。

問題

_sourceにあるため、 StoreES にorgCodestoreCodeが取り込まれます。検索応答の並べ替え [0]値から距離値を入力するにはどうすればよいですか。

StoreElasticSearchRepository メソッド

上記のクエリに相当する残りのリクエスト:

クエリの結果

エンティティ オブジェクト

前もって感謝します。

0 投票する
1 に答える
1381 参照

elasticsearch - NativeSearchQueryBuilder スペースと大文字を使用したelasticsearch

次のコードを使用してエラスティック検索 Java API でフィルタリングしています。文字列クエリを使用すると正常に動作し、結果が返されますが、スペースまたは大文字を含むテキストを使用すると、データは返されません。

使用する場合

データを返す

そして、私が使用する場合

また

データを返さない