問題タブ [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.
scala - Elastic4s を使用してパーコレーターにクエリを登録する
パーコレーター クエリを Elastic4s ライブラリに登録しようとしています。多くの調査の結果、次のようなものを使用する必要があることがわかりました。
私がこれをやっているかのように:
しかし、esClient.execute を実行しようとすると、いくつかの解析エラーが発生しますが、curl では問題なく動作します。
そのため、クエリを別の形式にする必要があると感じていますが、ドキュメントには記載されておらず、例が見つからないようです。私は次のような他のいくつかのフォーマットを試しました:
しかし、何もうまくいかないようです。私がうまくいったのは、次のようにすることだけでした:
しかし、これでは、実際に一致させたいものを指定できません。誰でもこれに関する経験やアイデアはありますか?
scala - プレイ中に何が起こるか!コントローラのインスタンス化?
Play フレームワークのコントローラー内で奇妙な動作が発生します。私はelastic4sを使用してElasticsearchクラスターに接続していますが、接続を確立する正確なタイミングに応じて、機能するか機能しません。これまでの最小限の例は次のようになります。
経由でアプリを起動しsbt run
ます。次に、2 つのエンドポイントを取得してみます。curl localhost:9000/lazyStats/
正常に動作し、ES ノードと通信して適切な統計を返します。curl localhost:9000/eagerStats/
ES トランスポート層から例外をスローします (最後にスタック トレース)。私のコードはどちらの場合も同じであるため (唯一の違いはval
vs lazy val
)、コンストラクターが奇妙な方法でインスタンス化されていると思います。誰かがそれを確認または否定できますか?
補足として、ES接続と@Inject
それを処理する別のクラスを作成することもできます(おそらくそれも作成します@Singleton
)-そしてそれはおそらく好ましい解決策です。ただし、説明されている動作は奇妙だと思います。説明があればうれしいです。
これelastic4s
は、公式の ES Java ドライバーの小さなラッパーであり、このシナリオで魔法が起こっているわけではないと確信しています。
更新: スタンドアロン プロセスと同じマシンで単一ノードの ES クラスターを実行しています。適切に構成されており、kopf プラグインも稼働しています。REST インターフェイスは正常に動作します。遅延初期化接続を使用すれば、トランスポート インターフェイスも機能します。
私は ES 2.2.0 (クライアント側とサーバー側の両方)、Play 2.4.6、scala 2.11.7、SBT 0.13.8 を使用しています。
熱心な接続からのスタック トレース:
json - Scala オブジェクトを Json にシリアル化し、Elasticsearch にインデックスを作成する際の NotXContentException
Elasticsearch で比較的複雑な Scala オブジェクトのインデックスを作成しようとしています。これが私のケースクラスです:
これらのケース クラスごとに、次のスタイルの Format[ObjectType] writes メソッドの定義を含むコンパニオン オブジェクトがあります。
インデックス作成を実行するための接続設定と方法は次のとおりです。
アプリを実行すると、ゲーム オブジェクトのインデックスを作成しようとすると、Elasticsearch から次の例外が発生します。
この例外に関する情報が見つかりません。オブジェクトが適切にフォーマットされていないためにインデックスが作成されていないことを意味することは理解していますが、それ以外のトラブルシューティング方法がわかりません。インデックスを作成するのではなく、Json を印刷すると、有効な Json があることを確認しました。Elasticsearch がインデックスを作成しようとしている Json を好まない理由について何か考えはありますか?