問題タブ [elastic4s]
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 - Elasticsearch ですべてのフィールドを取得する方法
elastic4s を使用して _source の下のすべてのフィールド名 (値ではない) を取得する方法は? マップされたすべてのフィールドのリストが必要です。私は次のようなことをしてみました:
あるいは
しかし、それはしませんでした。_source の下のメタデータ フィールドだけでなく、すべてのメタデータ フィールドを取得しました
====更新===
私はこの方法を見つけました:
同じ結果を得るためのより良い方法はありますか?
scala - Elastic4s クライアントのロギング
この例を見ると
クライアントによって行われたすべての操作 (インデックス、検索など) をログに記録するために client.execute にログをフックするオプションはありますか?
この回答を見ましたが、次のようなことはしたくありません:
クライアントがログ レベルに基づいてすべてのログを記録するようにしたい
scala - RemoteTransportException、テキスト フィールドで集計を行う場合、テキスト フィールドで Fielddata が無効になります
2.x から 5.x に移行しています。次のようにインデックスに値を追加しています。
ただし、フィールドごとにすべての値をフェッチすることもできます。
しかし、私はこの例外を受けています:
RemoteTransportException[[8vWOLB2][172.17.0.5:9300][インデックス:データ/読み取り/検索[フェーズ/クエリ]]]; ネストされた: IllegalArgumentException[デフォルトでは、フィールドデータはテキスト フィールドで無効になっています。[my_tag] で fielddata=true を設定して、転置インデックスを元に戻してメモリに fielddata をロードします。ただし、これはかなりのメモリを使用する可能性があることに注意してください。
ここkeyword
に示すように使用する可能性があると考えられますが、フィールドは事前に知られていない (ユーザーから送信された) ため、垂直マッピングを使用できません
scala - カスタム キー タイプのマップを含むタイプのインデックス可能なものを生成できません
私はscala 2.11.11、elastic4s 5.4.5、elastic4s-circe 5.4.5を使用しています
これはコンパイルされません:
ドキュメントによると:
選択したライブラリのインポートを以下に追加するだけで、それらの暗黙的なスコープを使用して、任意のタイプを doc に渡すことができ、Indexable が自動的に派生します。
Elastic4s -circimport io.circe.generic.auto._
ありおよびimport com.sksamuel.elastic4s.circe._
用。
私は何が欠けていますか?
elastic4s - 接続が切断されたときのelastic4sの自動再接続
Elastic4s で自動再接続を処理する方法 (またはベスト プラクティス) はありますか?
エラスティック クラスターがアプリケーションの背後で再起動される状況があります (セキュリティ更新など)。[明らかに、これは理想的ではなく、ローリング再起動によってより適切に処理されますが、まだ完全には達成されていません。]
ただし、これが発生すると、接続が切断され、クラスターがオンラインに戻ったときに回復することはありません。利用可能なノードがないと言い続けます。アプリケーションを再起動すると、問題なく再接続されます。
新しい接続を作成せずにこれを適切に処理する方法はありますか (つまりTcpClient
)? 現在、アプリケーションのさまざまな部分に新しいものを配布するTcpClient
か、この状況を処理する何かで API をラップする必要があります。どちらもあまり魅力的ではありません。
ありがとう