c# - 如何格式化包含 html 的 Elasticsearch 高亮数据?

标签 c# html regex elasticsearch

我在 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/

相关文章:

c# - 如何在 C# 中干净地设计并行继承结构?

c# - Entity Framework ,获取子类的类型?

javascript - 如何创建允许多行数据的 &lt;input type ="text"/> 标签。不要说使用 textarea 标签

javascript - 如何使用javaScript进行多项选择

文件路径的Java正则表达式

c# - 通过 EWS API 连接到 Office 365

html - 图片不显示问题

regex - "GREATER THAN"的 SUMIF 数组公式

regex - 在 Perl 正则表达式中使用包含特殊字符的变量

c# - 使用范围服务的 Hotchocolate 日志记录错误