如何在搜索前删除 Azure 认知搜索文档中的高亮标记

时间:2021-07-28 10:36:02

标签: azure-cognitive-search

Azure 搜索默认使用 <em> 标记突出显示搜索结果。我遇到过用户上传带有该标签的文档的情况:

<em>Today</em> topic will be...

当我搜索“主题”时,我会得到:

<em>Today</em> <em>topic</em> will be...

而且我无法区分正确的突出显示。

我知道我可以修改 highlight_pre_tag 和 highlight_post_tag 所以我会在这种特殊情况下避免这种情况。但是在应用高亮之前,还有其他方法可以对这些标签进行编码吗?

编辑: 通过编码,我的意思是得到这样的东西:

&lt;em&gt;Today&lt;/em&gt; <em>topic</em> will be...;

所以我可以将它发送到前端,然后将“Today”中的 &lt;em&gt; 显示为 <em> 并在“topic”中使用 <em> 将其突出显示为黄色。

1 个答案:

答案 0 :(得分:1)

如果您直接使用索引 API,Azure 搜索不提供任何内置机制来修改文​​档的“原始”内容,但是,如果您使用我们的内置索引器之一,您可以查看使用 field mapper functions(例如 UrlEncode 函数)或创建您自己的 custom skill(如果您只想应用非常具体的规则)将传输中的文档从您的数据源转换为搜索索引。

或者,我们已经看到客户使用易于识别的自定义突出显示前和后标记(并且不太可能被误认为是原始内容),然后在其客户端应用程序中使用简单的搜索和替换功能将它们转换回所需的标签。

例如,使用

<块引用>

预标记:“!HIGHLIGHT_START!”和帖子标签:“!HIGHLIGHT_END!”

然后使用

<块引用>

String.Replace("!HIGHLIGHT_START!", "")

在他们的应用程序中显示结果之前。这样,任何需要查找实际亮点的客户端逻辑都可以使用自定义标签,同时仍会在 UX 中显示所需的标签。