これ以上の問題があります。それは今弾力検索でそれを行う方法があり、近い将来になることはないようです。
Developer Shay Banon wrote:
ネストされたクエリに基づいてハイライト表示を行うためには、ネストされた 文書はより問題(とあまりパフォーマンス)であることを強調するためにも同様に抽出する を必要とします。
Also:
彼の説明は、子どもたちが多数存在することができ として、これはメモリの良い量を取ることでした。そして、この機能を追加すると として フィードのN個の数だけ処理の基本的な概念に違反すると私に本物のように見えます。
唯一の方法は、独自のプログラムでクエリの結果を手動で処理してハイライトを追加することです。
更新
私はタイヤまたはNGRAMフィルタについて知らないが、私は、ネストされた面とファセットフィルタを使用して、ネストされた文書に一致するすべてのフィルタを取得する方法を発見しました。ハイライトのための別個のクエリが必要ですが、少なくとも私の場合は_sourceを参照するよりもはるかに高速です。
{"query":
{"match_all":{}},
"facets":{
"matching_translations":{
"nested":"translations",
"terms":{"field":"translations.value"},
"facet_filter":{
"bool":{"must":[{"terms":{"translations.value":["foo1"]}}]}
}
}
}
}
結果のファセット用語を使用して、プログラムでハイライト表示することができます。例えば
:私は(jqueryの中で)ネストされたドキュメントへのリンクを強調したい:
setHighlights = function(sdata){
var highlightDocs = [];
if(sdata['facets'] && sdata['facets']['docIDs'] && sdata['facets']['doctIDs']['terms'] && sdata['facets']['docIDs']['terms'].length >0){
for(var i in sdata['facets']['docIDs']['terms']){
highlightDocs.push(sdata['facets']['docIDs']['terms'][i]['term'])
}
}
$('li.document_link').each(function(){
if($.inArray($(this).attr('id'),highlightDocs) != -1) {
$(this).addClass('document_selected');
}
});
私は少しのに役立ちます願っています。 。
今日、同じ問題をヒット - それは私がハイライトを持っていると言われます(例えば値:foo2は BAR2私はfoo2を検索しますが、元のドキュメントに戻す簡単な方法ではありません) – Phantomwhale