問題タブ [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 に答える
64 参照

elasticsearch - index.routing.allocation の設定方法

設定方法index.routing.allocation.*例:

testJava API を使用したインデックスの場合は?

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

elasticsearch - ドキュメントの特定のシャードを照会する方法

この設定を使用して、次の1ような URLを持つ ID を持つツイート ドキュメントの ES シャード #2 をクエリできます。

Java API でこれを行うにはどうすればよいですか?

これを編集:

ドキュメントをリストしますが、以下の両方が NPE を返します。

編集2:

このインデックスのシャードが 2 つしかない場合、

私はNPEを取得し、

「見つかった:偽」が表示されます:

実際のドキュメントを取得しid1、完全な_source?

EDIT3: のために:

次の応答が得られます

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

java - Java アプリケーションを Elasticsearch に接続する方法は?

私は Java アプリケーションに取り組んでおり、アプリケーションを Elasticsearch サーバーに接続する必要があります。

私は Java と Elasticsearch の両方に慣れていないため、どのように進めればよいかわかりません。意味のあるドキュメントは見つかりませんでした。

誰でも私を案内してもらえますか。前もって感謝します。

0 投票する
0 に答える
28 参照

java - ElasticSearch フィルターが適用されていませんか?

シリーズの次のエピソードを見つけるためにelasticSearchを使用しています。これを行うには、最初に前のエピソードよりも高いseasonまたは高いエピソードをフィルタリングしてから、昇順で並べ替え、結果を 1 に制限します。episodeseasonepisode

実行時にフィルターを文字列として抽出すると、次のクエリが得られます。

紛らわしいことに、次のようになります。

(簡潔にするために一部のフィールドは削除されています)

episodeフィルターが指定していても (私は思っていました)、結果のとseasonは両方とも 1 であることに注意してください。

また、並べ替えを逆にして降順に並べ替えてみたところ、まったく別のシリーズのエピソードになったので、sameSeriesFilterどちらも適用されていないようですが、並べ替えは機能しているようです!

とにかく...ここで何が起こっているのですか?

更新: 言い忘れましたが、これは ES の v.1.7 です。

私はなんとかそれを機能させることができましたが、何か不思議なことが起こっています. 気まぐれで、空の matchAll クエリを追加しました。これは何もしないはずですが、何らかの理由ですべてが機能します。フィルタが正しく適用されるようになりました。ESはこのように動作するはずですか?もしそうなら、なぜですか?新しい作業コード:

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

java - Java トランスポート クライアントを使用して ElasticSearch に接続するにはどうすればよいですか?

Java クライアントの ElasticSearch ドキュメントに従っています。ElasticSearch を開始しました。Rest API を使用して操作できます。Java クライアントを使用したいのですが、これまでのところ、次のようなメインがあります。

}

Java ログには、127.0.0.1:9300 との接続があることがわかります。しかし、「prepare index」コマンドの後、エラーは表示されず、何も出力されません (システム出力コマンドがいくつかあります)。ElasticSearch のログも相対的なものではありません。Rest API でインデックスを作成すると、これがログに表示されます。

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

elasticsearch - Elasticsearch Java API : ドキュメント数の集計フィルター

頻度が特定のしきい値を超えるドキュメントのみを返す集計を実装したいと考えています。

たとえば、すべてのドキュメントとそのカウントを取得する集計は次のとおりです。

これにより、各値のドキュメント数が得られますcolumn_name

ここで、これらのドキュメントのすべてが必要ないとしましょう。doc_countよりも大きいものだけが欲しい25

したがって、理想的な結果は

[{"doc_count":30,"key":"val1"},{"doc_count":29,"key":"val2"}]

このようなフィルターを集計に適用するにはどうすればよいですか? 集計を見てFilterBuildersフィルターをかけていましたが、それらはドキュメント内の任意の値にフィルターを適用するためのものです。たとえば、フィルターを適用して、ドキュメントのみを取得できval1 == xzaますcolumn_name

しかし、それは私が探しているものではありません。doc_cunt集計が適用された後に、値にしきい値を適用したいと考えています。

これは可能ですか?私はelasticsearch Java APIバージョン1.7.2を使用しています

0 投票する
0 に答える
299 参照

java - 部分変更配列 ElasticSearch

ElasticSearch 2.3.3 を使用しています。ここで、インデックス内のドキュメント内の多くの配列の 1 つを更新する必要があります。これはElasticSearchのドキュメントの一部です:

次のように、Java-APIで「ドキュメントをマージして更新」機能を使用しようとしました:

しかし、配列内のいくつかのフィールドを更新する必要がある間、配列全体を書き換えるだけです。何か方法はありますか?

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

elasticsearch - Elasticsearch Javaの文字列インデックス付きフィールドで単語を検索する

「SS、SX、US、IND、CND、TN」などの形式の文字列フィールドcountrysがあり、 「SS」の形式になる入力文字列フィールドcountryCodeがあります。特定のcountryCodeがelasticsearchの国にあるすべてのレコードを照会するにはどうすればよいですか? とクエリを試しましたが、望ましい結果が得られませんでした。matchmatch_phrase

Query.must(QueryBuilders.matchPhraseQuery("countries", countryCode))

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

java - フィルターを使用した全文検索用の Elasticsearch Java API

ドキュメント内の任意のフィールドに一致する文字列「user」で全文検索を実行し、フィルターを適用して、x フィールドの値が「abc」または「xyz」のいずれかであるレコードのみを取得したいと考えています。

Sense をいじると、以下のリクエストが私の要件を満たします。

しかし、私はJava APIが上記のことをしたいと思っています。エラスティック ドキュメントと SO を検索しましたが、 QueryBuilders.filteredQuery のような API が非推奨のように見えるため、探しているものが見つかりませんでした。現在 2.3.4 を使用していますが、アップグレードできます。