Elasticsearch突出显示数组,如何返回整个数组

Jon*_*ile 6 elasticsearch

我正试图在Elasticsearch中进行一些突出显示,并且很难获得我想要的多值字段输出.这就是我现在正在做的事情:

{ "query" : { "match": { "nameSet": "test" } }, 
  "highlight" : { "fields" : { "*": {"number_of_fragments": 0 } } }
}
Run Code Online (Sandbox Code Playgroud)

这给了我(省略了不必要的字段):

"hits" : [ {
    ...
    "_source" : {
        "nameSet" : ["TEST", "NAME"]
    },
    "highlight" : {
       "nameSet" : [ "<em>TEST</em>" ]
    }
 }, 
 ...
Run Code Online (Sandbox Code Playgroud)

我想要的是完整的数组,而不仅仅是匹配的项目.在这个例子中,我希望强调"TEST"并且"NAME"存在但不强调.

"hits" : [ {
    ...
    "_source" : {
        "nameSet" : ["TEST", "NAME"]
    },
    "highlight" : {
       "nameSet" : [ "<em>TEST</em>", "NAME" ] 
    }
 }, 
 ...
Run Code Online (Sandbox Code Playgroud)

任何方式纯粹在ES中这样做?

谢谢.

Jes*_*ela -3

在突出显示对象内部,您可以使用前置和后置标签。例如:

"hits" : [ {
    ...
    "_source" : {
        "nameSet" : ["TEST", "NAME"]
    },
    "highlight" : {
       "pre_tags": "<em>",
       "post_tags": "</em>",
       "nameSet" : [ "<em>TEST</em>", "NAME" ] 
    }
 }, 
 ...
Run Code Online (Sandbox Code Playgroud)