【问题标题】:Indexing HTML content from Azure database with Azure Search使用 Azure 搜索从 Azure 数据库索引 HTML 内容
【发布时间】:2017-05-27 18:03:21
【问题描述】:

我们在 Azure 数据库中存储了一些 CMS 内容,并且需要从我们的数据库中索引一些 HTML 内容。

在 Azure 搜索中建立索引的最佳做法是什么,以便它只索引内容,而不是 HTML?或者,使得索引识别为 HTML,并忽略 HTML 标记?

我知道一种选择是在它到达索引之前或在它的途中对其进行操作,但我希望 Azure 搜索中有一些内置功能。

【问题讨论】:

    标签: azure-cognitive-search


    【解决方案1】:

    目前,Azure blob indexer 是唯一支持以去除 HTML 标记的方式解析 HTML 的 Azure 搜索索引器。 Azure SQL 索引器将 HTML 文本视为文本块。

    你有几个可能的选择:

    1. 使用 SQL 索引器并接受被索引的 HTML 标记 - 根据您的文档,您的搜索质量可能仍然很好。
    2. 预处理您的数据并去除 HTML 标记,然后将解析的文本放回 SQL(并使用 SQL 索引器),或者您的索引 API 将数据推送到搜索索引中。
    3. 将 HTML 数据存储在 Blob 存储中并使用 Blob 索引器来索引 HTML 数据,同时继续使用 SQL 索引器来索引其余数据。多个索引器可以写入同一个搜索索引,实际上是从多个数据源“组装”文档。

    【讨论】:

      【解决方案2】:

      您可以尝试使用带有自定义字符过滤器的Custom Analyzer

      Char Filters 可用于通过映射模式替换(正则表达式)“清理”输入。

      该模式使用PatternReplaceCharFilter 在内部替换它。

      请记住,复杂的表达式可能会导致索引时间变长。

      【讨论】:

        【解决方案3】:

        我正在使用这样的自定义分析器来索引 HTML。不知道是不是最好的办法。

            {
              "name": "bodyHtml",
              "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer",
              "tokenizer": "standard_v2",
              "tokenFilters": [
                "lowercase", "asciifolding"
              ],
              "charFilters": [
                "html_strip"
              ]
            }
        

        【讨论】:

          猜你喜欢
          • 2018-11-19
          • 2016-11-13
          • 1970-01-01
          • 2018-10-28
          • 2017-04-27
          • 2020-07-12
          • 1970-01-01
          • 2017-02-28
          • 1970-01-01
          相关资源
          最近更新 更多