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

时间:2017-08-18 15:38:56

标签: c# html regex elasticsearch

我在c#webapp上使用Elasticsearch 1.7突出显示,但突出显示的数据中包含html。目前我正在使用此正则表达式删除html

Regex.Replace(rawHighlight, "<.*?>", string.Empty)

当突出显示未完成完整的html标记时,问题就出现了。例如,如果我的前置和后置标记为@highlight----highlight@,我可能会收到这样的结果:

<div>This is an @highlight--example--highlight@ </d

因此正则表达式将删除第一个div但不会删除那个不完整的那个。 </d

所以这是一个两个问题。是否有正则表达式在第一个正则表达式运行后删除格式错误的html(将在字符串的结尾或开头)或者是否有更好的方法来使用Elasticsearch的{​​{1}}以便我不必解析字符串?

1 个答案:

答案 0 :(得分:1)

也许你已经问过自己,但是为了完成: 为什么你的搜索索引中有html?如果你真的需要,那么添加第二个(脚本化)字段,其中包含一个解析的html(没有标签),并用它来突出显示。