여기에서 같은 문제가 발생합니다. 지금은 신축성있는 검색에서 그것을 할 방법이 있으며 가까운 장래에 없을 것 같습니다.
Developer Shay Banon wrote
는 : 중첩 된 쿼리를 기반으로 강조 할하기 위해
, 중첩 된 문서가 더 문제 (적은 확대됨)입니다을 강조하기 위해, 에서뿐만 아니라 추출 할 필요가있다.
Also
는 :
그의 설명은이 아이들의 많은 수의있을 수 로 메모리의 좋은 시간이 걸릴 것이라고했다. 그리고 그것은 정품이 봐서 이 기능을 추가하면 처리의 기본 개념을 한 번에 N 개의 피드를 위반합니다.
유일한 방법은 하이라이트를 추가하기 위해 자신의 programm에서 수동으로 쿼리 결과를 처리하는 것입니다.
업데이트
나는 타이어 또는 N- 그램 필터에 대해 알고하지 않습니다하지만 난 중첩 된면과면 필터를 사용하여 중첩 된 문서를 일치하는 모든 필터를 검색 할 수있는 방법을 발견했다. 하이라이팅을 위해 별도의 쿼리가 필요하지만 적어도 내 경우에는 _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 바 2 foo2를 검색 할 때) 소스 문서로 다시 묶는 간단한 방법은 아니지만 – Phantomwhale