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