2016-07-20 16 views
2

私はElasticsearchでいくつかの強調表示をしようとしていますが、多値フィールドの出力を得るのが難しいです。ここで私が今やっているものです:これは私を与える配列上のElasticsearchハイライト、配列全体を返す方法

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

(不要なフィールドを省略):

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

は私が持っているしたいことは一致しただけのアイテムではない完全な配列である、と。この例では、 "TEST"を強調し、 "NAME"を強調しないようにしたいと思います。

"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" ] 
    } 
}, 
... 
関連する問題