如何在 Solr 中突出显示包含 html 的字段中的查询词
How to highlight a query term in a field containing html in Solr
我有一个正文字段,其中可能包含来自富文本编辑器的 html 文本。我希望能够从中 return 突出显示片段,但 html 被删除。
将下面的文本编入索引:
<p class="something">some text here with words and other text</p>
如果您搜索 'words',您可能会得到以下突出显示的片段(取决于片段长度等):
class="something">some text here with <em>words</em> and other text</p>
或者
class="something">some text here with <em>words</em> and other text
其中HTML被拆分,会造成前端渲染问题。我想在应用突出显示之前删除 html 。我尝试了不同的突出显示组件,但没有看到任何可以解决问题的属性。
我需要在索引之前去除 HTML 吗? 或者有其他技术吗?
目前我正在使用 HTMLStripCharFilterFactory 在索引时删除 HTML,但突出显示组件使用的是原始 html 的底层存储数据。
我也有同样的问题,得出结论,唯一的办法就是使用两个字段,例如:
- content_html:原始 html,使用 HtmlStripCharFilterFactory 所以 html 内容将是 indexed/tokenized
- content_stripped: 仅文本内容,将用于高亮片段
在 C# 中,我会使用 HtmlAgilityPack,例如,将 HTML 加载到文档中,然后在根节点上调用 .Text。
应存储这两个字段,以便您可以将纯文本字段用于片段,将 html 字段用于突出显示整个字段。
我查看了 Solr 和 ElasticSearch,发现没有内置方法,因为突出显示是在存储的任何内容上执行的。
相关:Solr Strip html when highlighting with stored html fields
相关:How to handle html tags in highlight fragment in SOLR
我有一个正文字段,其中可能包含来自富文本编辑器的 html 文本。我希望能够从中 return 突出显示片段,但 html 被删除。
将下面的文本编入索引:
<p class="something">some text here with words and other text</p>
如果您搜索 'words',您可能会得到以下突出显示的片段(取决于片段长度等):
class="something">some text here with <em>words</em> and other text</p>
或者
class="something">some text here with <em>words</em> and other text
其中HTML被拆分,会造成前端渲染问题。我想在应用突出显示之前删除 html 。我尝试了不同的突出显示组件,但没有看到任何可以解决问题的属性。
我需要在索引之前去除 HTML 吗? 或者有其他技术吗?
目前我正在使用 HTMLStripCharFilterFactory 在索引时删除 HTML,但突出显示组件使用的是原始 html 的底层存储数据。
我也有同样的问题,得出结论,唯一的办法就是使用两个字段,例如:
- content_html:原始 html,使用 HtmlStripCharFilterFactory 所以 html 内容将是 indexed/tokenized
- content_stripped: 仅文本内容,将用于高亮片段
在 C# 中,我会使用 HtmlAgilityPack,例如,将 HTML 加载到文档中,然后在根节点上调用 .Text。
应存储这两个字段,以便您可以将纯文本字段用于片段,将 html 字段用于突出显示整个字段。
我查看了 Solr 和 ElasticSearch,发现没有内置方法,因为突出显示是在存储的任何内容上执行的。
相关:Solr Strip html when highlighting with stored html fields
相关:How to handle html tags in highlight fragment in SOLR