同樣的問題在這裏。似乎現在有辦法在彈性搜索中做到這一點,而且不會在不久的將來。
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 2013-03-15 04:19:36