我在 c# webapp 上使用 Elasticsearch 1.7 突出显示,但突出显示的数据中包含 html。目前我正在用这个正则表达式剥离 html
Regex.Replace(rawHighlight, "<.*?>", string.Empty)
当突出显示没有完成一个完整的 html 标签时,问题就出现了。例如,如果我的 pre 和 post 标签是
@highlight--
和 --highlight@
我可能会得到这样的结果:<div>This is an @highlight--example--highlight@ </d
所以正则表达式将删除第一个
div
但不是一个不完整的即。 </d
所以这是两个问题合二为一。在第一个正则表达式运行后是否有正则表达式来删除格式错误的 html(将在字符串的末尾或开头)或者是否有更好的方法来使用 Elasticsearch 的
highlight
这样我就不必解析字符串了?
最佳答案
也许你已经问过自己了,但为了完成:
为什么你的搜索索引中会有 html?如果您真的必须这样做,请添加第二个(脚本化)字段,其中包含已解析的 html(不带标签),并将其用于突出显示。
关于c# - 如何格式化包含 html 的 Elasticsearch 高亮数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45760361/