【问题标题】:Elasticsearch highlight on array, how to return entire arrayElasticsearch突出显示数组,如何返回整个数组
【发布时间】:2016-11-23 21:12:06
【问题描述】:

我正在尝试在 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 中做到这一点?

谢谢。

【问题讨论】:

  • 你有没有想过这个问题?我也面临同样的问题

标签: elasticsearch


【解决方案1】:

在高亮对象内部,您可以使用 pre 和 post 标记。例如:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-10
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    相关资源
    最近更新 更多