問題タブ [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.
elasticsearch - Elasticsearch: ツイートのインデックス作成 - マッピング、テンプレート、または ETL
Apache NiFi からのツイートを Elasticsearch に POST としてインデックス付けしようとしており、次のことを行いたいと考えています。
フィールド
create_at
を日付にします。これにはマッピングまたはインデックス テンプレートを使用する必要がありますか?一部のフィールドを分析しないようにします。ハッシュタグやURLなど。
ツイート全体ではなく、いくつかの重要なフィールドを保存したい。テキストと同様に、すべてのユーザー情報ではなく、一部のフィールド、ハッシュタグ、エンティティからの URL (投稿 URL 内)。引用元はいらない。この場合、何を使用すればよいですか?テンプレート?必要なデータを抽出して ES にインデックスを付けるために、ETL プロセスでツイートを前処理しますか?
私は少し混乱しています。アドバイスをいただければ幸いです。
前もって感謝します。
json - マルチバケット サブ集計の要素で集計を並べ替える
terms
Elasticsearch 2.0.0で、特定の用語の上位ヒット数でマルチバケット集約のバケットをソートしようとしています。
わかりやすくするための例を次に示します。顧客の購入を表す次のデータセットがあるとします。
私が必要としているのは、顧客ごとに、平均totalPreTax
と最も頻繁な を取得channel
し、後者 (降順) でアルファベット順に並べ替えることです。あれは、
これまでのところ、次の (関連するビットのみを表示) があり、平均で並べ替えられていtotalPreTax
ます。
問題は、各バケット (別名、各顧客) のトップを把握するにchannel
は、2 番目のマルチバケットterm
サブ集計が必要になることです。私が関心があるのは、結果として得られる配列の最初の要素だけです。これは、最も頻繁なチャネルに必要な値を保持しています。これにより、byCustomer
次のようなものを使用して集計を並べ替えることができなくなります。
その結果:
AggregationExecutionException[無効な用語の集計順序パス [チャネル]。用語バケットは、パス内の 0 個以上の単一バケット集計と、パスの最後の単一バケットまたはメトリック集計から構築されたサブ集計パスでのみ並べ替えることができます。
誰かが似たようなことに取り組みましたが(私のシナリオとは異なります)、質問に適切に答えませんでした。
それで、どうすればこれを行うことができますか?何か案は?
編集:ESバージョンに関連付けられていない質問。可能な回答は、特定の API バージョンに適用できます。
search - Elasticsearch - ネストされたフィールドのアイテム数をスコアに反映する方法は?
Elasticsearch 2.x バージョンを使用しています。データのマッピングは次のとおりです。
「vocab」は、{string, float}
like、
私がやりたいことは、「犬」がクエリされたときに、最終スコアが 0.3 / 3 になるようにすることです。つまり、一致した用語のスコアを「語彙」の項目数で割った値です。
と を使用して 0.3 の取得function_score
が機能script_score
するようにしましたが、3 の取得に失敗しましたdoc['vocab'].value.size()
。
誰でもこれで私を助けることができますか?お願いします...
elasticsearch - エラスティックサーチ: inner_hits と hightlight_query
highlight_query
短いバージョン: 結果を強調表示するために提供される機能を取得することは何とか可能inner_hits
ですか?
長いバージョン: 次のマッピングを検討してください:
ご覧のとおり、doctext
とsentences
フィールドがあります。アイデアは、ドキュメントのテキストを文に分割して、文ベースの検索を可能にするというものです。
これをドキュメントの例とします:
これで、テキスト全体と単一の文を検索でき、両方を強調表示することもできます。
次のことはしないでください。
- 上の
nested
クエリsentences
- その
inner_hits
クエリの部分 - の
highlight_query
部分ではなく、秒highlight
の部分inner_hits
このクエリを発行すると、次の応答が返されます。
zebrasdoctext
を検索したにもかかわらず、フィールドではlionsが強調表示されていることに注意してください。他に行うことを指定していないため、do はそれらを強調しています。しかし、ハイライトと同じように、内側のヒットでlionsをハイライトしたいです。inner_hits
doctext
inner_hits
クエリの一部を次のように変更しようとしました
ただし、これにより次の例外が発生します。
これを機能させる方法はありますか?これで DSL を間違えたのでしょうか? inner_hits
強調表示が機能する状態のみに関するドキュメント( https://www.elastic.co/guide/en/elasticsearch/reference/2.1/search-request-inner-hits.html ) はありますが、詳細には触れていません。
読んでくれて、ヒントをくれてどうもありがとう!
elasticsearch - エラスティックサーチ ドキュメントを復元する
最初に言う:私はを使用elasticsearch 2.0
し、インストールしましたdelete-by-query plugin
。
このプラグインを使用して、ドキュメントの一部を削除しました。この削除の後、ドキュメントには削除済みのフラグが付けられ、それらを見つけることができなくなります。ドキュメントをディスクから削除するには、こちらを使用するoptimize
か、forcemerge
参照する必要があります。
ドキュメントをディスクから削除しません。私の問題は、数日後、いくつかの輸入文書を削除したことに気付いたことです。
私の質問は次のとおりです。フラグが設定されたドキュメントを復元できますか?