2016-07-20 71 views
2

我想在Elasticsearch中做一些突出顯示,並且難以獲得我想要的多值字段的輸出。下面是我現在在做什麼:Elasticsearch突出顯示陣列,如何返回整個陣列

{ "query" : { "match": { "nameSet": "test" } }, 
    "highlight" : { "fields" : { "*": {"number_of_fragments": 0 } } } 
} 

這給了我(省略不必要的字段):

"hits" : [ { 
    ... 
    "_source" : { 
     "nameSet" : ["TEST", "NAME"] 
    }, 
    "highlight" : { 
     "nameSet" : [ "<em>TEST</em>" ] 
    } 
}, 
... 

我想擁有的是全陣列,而不僅僅是匹配的項目。在這個例子中,我想強調「測試」,並且「姓名」出席但不強調。

"hits" : [ { 
    ... 
    "_source" : { 
     "nameSet" : ["TEST", "NAME"] 
    }, 
    "highlight" : { 
     "nameSet" : [ "<em>TEST</em>", "NAME" ] 
    } 
}, 
... 

任何方式純粹在ES中做到這一點?

感謝。

回答

0

在高亮對象的內部,您可以使用前後標籤。例如:

"hits" : [ { 
    ... 
    "_source" : { 
     "nameSet" : ["TEST", "NAME"] 
    }, 
    "highlight" : { 
     "pre_tags": "<em>", 
     "post_tags": "</em>", 
     "nameSet" : [ "<em>TEST</em>", "NAME" ] 
    } 
}, 
...