ElasticSearch获取突出显示的片段的偏移量

是否可以获得每个突出显示的片段的字符位置?我需要将突出显示的文本与源文档匹配,并且使用字符位置将使其成为可能。

例如:

curl "localhost:9200/twitter/tweet/_search?pretty=true" -d '{

"query": {

"query_string": {

"query": "foo"

}

},

"highlight": {

"fields": {

"message": {"number_of_fragments": 20}

}

}

}'

返回此突出显示:

"highlight" : {

"message" : [ "some <em>foo</em> text" ]

}

如果匹配的文档中的字段消息是:

"Here is some foo text"

有没有办法知道该摘要从匹配字段的char 8开始到char 21?

知道匹配 的开始/结束偏移量对我也很有益-也许有一种方法可以使用script_fields访问该信息?显示了如何获取令牌,而不是偏移量)。

“消息”字段具有:

"term_vector" : "with_positions_offsets",

"index_options" : "positions"

回答:

客户端方法实际上是标准做法。

我们已经讨论了添加偏移量,但担心会导致更多的混乱。提供的偏移量特定于Java的UTF-16字符串编码,尽管从技术上讲,它们可以用于计算$LANG中的片段,但解析响应文本以指定的分隔符的方式更简单。

以上是 ElasticSearch获取突出显示的片段的偏移量 的全部内容, 来源链接: utcz.com/qa/413876.html

回到顶部