問題タブ [elasticsearch-2.0]

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 に答える
1314 参照

elasticsearch - Elasticsearch: ツイートのインデックス作成 - マッピング、テンプレート、または ETL

Apache NiFi からのツイートを Elasticsearch に POST としてインデックス付けしようとしており、次のことを行いたいと考えています。

  1. フィールドcreate_atを日付にします。これにはマッピングまたはインデックス テンプレートを使用する必要がありますか?

  2. 一部のフィールドを分析しないようにします。ハッシュタグやURLなど。

  3. ツイート全体ではなく、いくつかの重要なフィールドを保存したい。テキストと同様に、すべてのユーザー情報ではなく、一部のフィールド、ハッシュタグ、エンティティからの URL (投稿 URL 内)。引用元はいらない。この場合、何を使用すればよいですか?テンプレート?必要なデータを抽出して ES にインデックスを付けるために、ETL プロセスでツイートを前処理しますか?

私は少し混乱しています。アドバイスをいただければ幸いです。

前もって感謝します。

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

json - マルチバケット サブ集計の要素で集計を並べ替える

termsElasticsearch 2.0.0で、特定の用語の上位ヒット数でマルチバケット集約のバケットをソートしようとしています。

わかりやすくするための例を次に示します。顧客の購入を表す次のデータセットがあるとします。

私が必要としているのは、顧客ごとに、平均totalPreTaxと最も頻繁な を取得channelし、後者 (降順) でアルファベット順に並べ替えることです。あれは、

これまでのところ、次の (関連するビットのみを表示) があり、平均で並べ替えられていtotalPreTaxます。

問題は、各バケット (別名、各顧客) のトップを把握するにchannelは、2 番目のマルチバケットtermサブ集計が必要になることです。私が関心があるのは、結果として得られる配列の最初の要素だけです。これは、最も頻繁なチャネルに必要な値を保持しています。これにより、byCustomer次のようなものを使用して集計を並べ替えることができなくなります。

その結果:

AggregationExecutionException[無効な用語の集計順序パス [チャネル]。用語バケットは、パス内の 0 個以上の単一バケット集計と、パスの最後の単一バケットまたはメトリック集計から構築されたサブ集計パスでのみ並べ替えることができます。

誰かが似たようなことに取り組みましたが(私のシナリオとは異なります)、質問に適切に答えませんでした。

それで、どうすればこれを行うことができますか?何か案は?

編集:ESバージョンに関連付けられていない質問。可能な回答は、特定の API バージョンに適用できます。

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

search - Elasticsearch - ネストされたフィールドのアイテム数をスコアに反映する方法は?

Elasticsearch 2.x バージョンを使用しています。データのマッピングは次のとおりです。

「vocab」は、{string, float}like、

私がやりたいことは、「犬」がクエリされたときに、最終スコアが 0.3 / 3 になるようにすることです。つまり、一致した用語のスコアを「語彙」の項目数で割った値です。

と を使用して 0.3 の取得function_scoreが機能script_scoreするようにしましたが、3 の取得に失敗しましたdoc['vocab'].value.size()

誰でもこれで私を助けることができますか?お願いします...

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

elasticsearch - エラスティックサーチ: inner_hits と hightlight_query

highlight_query短いバージョン: 結果を強調表示するために提供される機能を取得することは何とか可能inner_hitsですか?

長いバージョン: 次のマッピングを検討してください:

ご覧のとおり、doctextsentencesフィールドがあります。アイデアは、ドキュメントのテキストを文に分割して、文ベースの検索を可能にするというものです。

これをドキュメントの例とします:

これで、テキスト全体と単一の文を検索でき、両方を強調表示することもできます。

次のことはしないでください。

  1. 上のnestedクエリsentences
  2. そのinner_hitsクエリの部分
  3. highlight_query部分ではなく、 highlightの部分inner_hits

このクエリを発行すると、次の応答が返されます。

zebrasdoctextを検索したにもかかわらず、フィールドではlionsが強調表示されていることに注意してください。他に行うことを指定していないため、do はそれらを強調しています。しかし、ハイライトと同じように、内側のヒットでlionsをハイライトしたいです。inner_hitsdoctext

inner_hitsクエリの一部を次のように変更しようとしました

ただし、これにより次の例外が発生します。

これを機能させる方法はありますか?これで DSL を間違えたのでしょうか? inner_hits強調表示が機能する状態のみに関するドキュメント( https://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-request-inner-hits.html ) はありますが、詳細には触れていません。

読んでくれて、ヒントをくれてどうもありがとう!

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

elasticsearch - エラスティックサーチ ドキュメントを復元する

最初に言う:私はを使用elasticsearch 2.0し、インストールしましたdelete-by-query plugin

このプラグインを使用して、ドキュメントの一部を削除しました。この削除の後、ドキュメントには削除済みのフラグが付けられ、それらを見つけることができなくなります。ドキュメントをディスクから削除するには、こちらを使用するoptimizeか、forcemerge 参照する必要があります

ドキュメントをディスクから削除しません。私の問題は、数日後、いくつかの輸入文書を削除したことに気付いたことです。

私の質問は次のとおりです。フラグが設定されたドキュメントを復元できますか?