問題タブ [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.

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

scala - elastic4s:german_phonebookのアナライザー/フィルターを分析に追加する方法は?

次の german_phonebook アナライザーを Elastic4s を使用してエラスティック検索に追加するにはどうすればよいですか?

ここでの中心的な質問は、タイプicu_collat​​ionの german_phonebook フィルターにどのフィルターを使用するかということです。

...

答えに続いて、私はこのコードを思いつきました:

アナライザーの定義は次のようになります。

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

elasticsearch - Elasticsearch - 用語を追加する方法は?

値の配列に用語を追加する方法はありますか?

たとえば、私のドキュメントが次のようになっているとします。

「item4」と「item5」を追加したい。

私は2つのクエリでそれをしなければなりませんか? 1 つは現在の値のリストをロードし、次にそのリストを更新しますか? または、これらのアイテムを1つのクエリに追加できる、よりエレガントな方法はありますか?

私はこのようにelastic4sでそれをやろうとしています:

上記のコード スニペットを使用するには、Groovy スクリプトを有効にする必要がありますが、複数のアイテムでそれを行う方法がわかりません。

何か案が?

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

java - 複数の同時プロセス内でelasticsearchからデータを書き込んでクエリする方法は?

さまざまなトピックで Kafka をリッスンする単純なアプリケーションを Scala で作成しています。書き込みに関するイベントが発生すると、ElasticSearch にデータを書き留めます。ElasticSearch Java APIのラッパーとしてelastic4sを使用しています。したがって、さまざまなトピックのリッスンは、Futures で実行される並行プロセスとして実装されます。私のアプリのこのコードは次のようになります

ElasticSearch に書き込むために、 ElasticSearch private val client = ElasticClient.transport(uri)に接続し、データを書き込むElasticClient を含むヘルパー オブジェクトがあります。書き込みを実装するために、このオブジェクトには次のメソッドがあります。

問題は、3 つの先物を実行するとすべて正常に動作することです。しかし、4 番目の Future を追加すると機能しません。具体的には、クライアントは機能しません。完了しないPromiseで応答するだけです。1 つの興味深い詳細: クアッドコア プロセッサを搭載したコンピューターでこのアプリを実行すると、4 つの Future で問題なく動作します。

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

scala - Elastic4s を使用して生の JSON からインデックスを作成する

( https://www.elastic.co/guide/en/elasticsearch/reference/current/suggester-context.html )のように、いくつかのコンテキスト補完サジェスター マッピングを持つインデックスを作成する必要があります。https://github.com/sksamuel/elastic4s/issues/452でわかるように、これは DSL でサポートされていないようです。

そのため、生の JSON 文字列 (生のクエリと同様) からインデックスを作成すると便利です。これを達成することは可能ですか?

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

scala - 再帰型シグネチャを使用して共通の特性をすべて拡張するオブジェクトの型を定義する方法

すべてが共通の特性を拡張するオブジェクトを返すメソッドを作成しました。戻り値の型をその特性を持つオブジェクトに指定したいと思います。複雑なのは、トレイトが再帰的な型シグネチャを持っていることです。

特に、elastic4sを使用して、 aggregationDefinition traitを見ています。特性の定義は次のとおりです。

そして、私の方法の簡略版は次のとおりです。

複雑なのは AggregationDefinition にあり、型パラメーターが必要です。

トレイト定義の再帰と相互参照に混乱しており、型パラメーターがどうあるべきかわかりません。型パラメータには何を使用すればよいですか?

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

scala - Elastic4s サブスクライバーからの応答を akka-stream に送信する

現在、mongoDb から Elasticsearch にデータをストリーミングするソリューションを構築しています。私の目標は、elasticsearch に送信されたすべての成功したアイテムを追跡することです。私はakka-streamsとelastic4sを使用しています。現在、es へのストリーミングは次のようになっています。

そして、私の情報源からは次のようになります。

これですべてが正常に動作し、現在、2 番目のシンクで項目数などを記録しています。しかし、実際にelasticsearchに送信されたアイテムをログに記録したいと思います。Elastic4s サブスクライバーはlistener: ResponseListenerwithonAck(): Unitを提供しておりonFailure(): Unit、この情報をこのようにストリームに戻したいと思っています

どうすればそれを実装できますか?onAckとの要素をバッファリングするカスタム ステージが必要onFailureですか? それとももっと簡単な方法がありますか?

助けてくれてありがとう。

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

scala - Elastic4s / PlayFramework - パラメータ実行可能ファイルの暗黙的な値が見つかりませんでした

Play 2.3.7 Scala で ElasticSearch を使用しようとしています。エラスティック検索をインストールし、インデックスを追加して、稼働中です (curl を使用してテスト済み)。ただし、elastic4s を再生コントローラー内で動作させるのに苦労しています。

シンプルなリモート URL を使用してクライアントを作成しました

次に、クライアントで実行しようとします。

これはアクション内で実行されますが、次のエラーが発生します。

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

scala - 結果ドキュメントにフィールドがない場合の Elastic4s 検索ケース クラスの例のエラー

私は、Elastic4s マニュアルのこの例を使用してきました。ケース クラスでフィールドが指定されていないドキュメントを取得しようとするまでは、正常に動作しています。

nameマニュアルのこの例では、1 つの結果にのみフィールドがあり、フィールドが欠落していたとしましょうlocation。次のエラーが発生します。

java.util.NoSuchElementException: キーが見つかりません: 場所

さまざまなフィールドを持つ検索結果を処理するための適切なアプローチを探しています。

コードサンプル: