【发布时间】:2017-05-27 18:03:21
【问题描述】:
我们在 Azure 数据库中存储了一些 CMS 内容,并且需要从我们的数据库中索引一些 HTML 内容。
在 Azure 搜索中建立索引的最佳做法是什么,以便它只索引内容,而不是 HTML?或者,使得索引识别为 HTML,并忽略 HTML 标记?
我知道一种选择是在它到达索引之前或在它的途中对其进行操作,但我希望 Azure 搜索中有一些内置功能。
【问题讨论】:
我们在 Azure 数据库中存储了一些 CMS 内容,并且需要从我们的数据库中索引一些 HTML 内容。
在 Azure 搜索中建立索引的最佳做法是什么,以便它只索引内容,而不是 HTML?或者,使得索引识别为 HTML,并忽略 HTML 标记?
我知道一种选择是在它到达索引之前或在它的途中对其进行操作,但我希望 Azure 搜索中有一些内置功能。
【问题讨论】:
目前,Azure blob indexer 是唯一支持以去除 HTML 标记的方式解析 HTML 的 Azure 搜索索引器。 Azure SQL 索引器将 HTML 文本视为文本块。
你有几个可能的选择:
【讨论】:
您可以尝试使用带有自定义字符过滤器的Custom Analyzer。
Char Filters 可用于通过映射或模式替换(正则表达式)“清理”输入。
该模式使用PatternReplaceCharFilter 在内部替换它。
请记住,复杂的表达式可能会导致索引时间变长。
【讨论】:
我正在使用这样的自定义分析器来索引 HTML。不知道是不是最好的办法。
{
"name": "bodyHtml",
"@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer",
"tokenizer": "standard_v2",
"tokenFilters": [
"lowercase", "asciifolding"
],
"charFilters": [
"html_strip"
]
}
【讨论】: