問題タブ [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.
elasticsearch - index.routing.allocation の設定方法
設定方法index.routing.allocation.*
例:
test
Java API を使用したインデックスの場合は?
elasticsearch - ドキュメントの特定のシャードを照会する方法
この設定を使用して、次の1
ような URLを持つ ID を持つツイート ドキュメントの ES シャード #2 をクエリできます。
Java API でこれを行うにはどうすればよいですか?
これを編集:
ドキュメントをリストしますが、以下の両方が NPE を返します。
と
編集2:
このインデックスのシャードが 2 つしかない場合、
私はNPEを取得し、
「見つかった:偽」が表示されます:
と
実際のドキュメントを取得しid1
、完全な_source
?
EDIT3: のために:
次の応答が得られます
java - Java アプリケーションを Elasticsearch に接続する方法は?
私は Java アプリケーションに取り組んでおり、アプリケーションを Elasticsearch サーバーに接続する必要があります。
私は Java と Elasticsearch の両方に慣れていないため、どのように進めればよいかわかりません。意味のあるドキュメントは見つかりませんでした。
誰でも私を案内してもらえますか。前もって感謝します。
java - ElasticSearch フィルターが適用されていませんか?
シリーズの次のエピソードを見つけるためにelasticSearchを使用しています。これを行うには、最初に前のエピソードよりも高いseason
または高いエピソードをフィルタリングしてから、昇順で並べ替え、結果を 1 に制限します。episode
season
episode
実行時にフィルターを文字列として抽出すると、次のクエリが得られます。
紛らわしいことに、次のようになります。
(簡潔にするために一部のフィールドは削除されています)
episode
フィルターが指定していても (私は思っていました)、結果のとseason
は両方とも 1 であることに注意してください。
また、並べ替えを逆にして降順に並べ替えてみたところ、まったく別のシリーズのエピソードになったので、sameSeriesFilter
どちらも適用されていないようですが、並べ替えは機能しているようです!
とにかく...ここで何が起こっているのですか?
更新: 言い忘れましたが、これは ES の v.1.7 です。
私はなんとかそれを機能させることができましたが、何か不思議なことが起こっています. 気まぐれで、空の matchAll クエリを追加しました。これは何もしないはずですが、何らかの理由ですべてが機能します。フィルタが正しく適用されるようになりました。ESはこのように動作するはずですか?もしそうなら、なぜですか?新しい作業コード:
java - Java トランスポート クライアントを使用して ElasticSearch に接続するにはどうすればよいですか?
Java クライアントの ElasticSearch ドキュメントに従っています。ElasticSearch を開始しました。Rest API を使用して操作できます。Java クライアントを使用したいのですが、これまでのところ、次のようなメインがあります。
}
Java ログには、127.0.0.1:9300 との接続があることがわかります。しかし、「prepare index」コマンドの後、エラーは表示されず、何も出力されません (システム出力コマンドがいくつかあります)。ElasticSearch のログも相対的なものではありません。Rest API でインデックスを作成すると、これがログに表示されます。
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を使用しています
java - 部分変更配列 ElasticSearch
ElasticSearch 2.3.3 を使用しています。ここで、インデックス内のドキュメント内の多くの配列の 1 つを更新する必要があります。これはElasticSearchのドキュメントの一部です:
次のように、Java-APIで「ドキュメントをマージして更新」機能を使用しようとしました:
しかし、配列内のいくつかのフィールドを更新する必要がある間、配列全体を書き換えるだけです。何か方法はありますか?
elasticsearch - Elasticsearch Javaの文字列インデックス付きフィールドで単語を検索する
「SS、SX、US、IND、CND、TN」などの形式の文字列フィールドcountrysがあり、 「SS」の形式になる入力文字列フィールドcountryCodeがあります。特定のcountryCodeがelasticsearchの国にあるすべてのレコードを照会するにはどうすればよいですか? とクエリを試しましたが、望ましい結果が得られませんでした。match
match_phrase
Query.must(QueryBuilders.matchPhraseQuery("countries", countryCode))
java - フィルターを使用した全文検索用の Elasticsearch Java API
ドキュメント内の任意のフィールドに一致する文字列「user」で全文検索を実行し、フィルターを適用して、x フィールドの値が「abc」または「xyz」のいずれかであるレコードのみを取得したいと考えています。
Sense をいじると、以下のリクエストが私の要件を満たします。
しかし、私はJava APIが上記のことをしたいと思っています。エラスティック ドキュメントと SO を検索しましたが、 QueryBuilders.filteredQuery のような API が非推奨のように見えるため、探しているものが見つかりませんでした。現在 2.3.4 を使用していますが、アップグレードできます。