你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

为搜索处理自由格式文本

认知搜索
Data Lake Storage
HDInsight
SQL 数据库
存储

若要支持搜索,可以对包含文本段落的文档进行自由格式文本处理。

文本搜索的工作原理是构造一个针对文档集合预先计算的专用索引。 客户端应用程序提交包含搜索词的查询。 查询返回一个结果集,其中包含根据文档与搜索条件的匹配程度排序的文档列表。 搜索集还会包括文档与条件进行匹配时所处的上下文,所以应用程序能够突出显示文档中的匹配段落。

自由格式文本处理可以基于大量的嘈杂文本数据生成有用的可操作数据。 结果可以为非结构化文档提供定义完善的且可查询的结构。

体系结构

在大多数情况下,将源文本文档加载到对象存储,例如 Azure 存储Azure Data Lake Storage,然后使用外部搜索服务进行索引。 源文本文档在物理上不同于搜索服务上托管的搜索索引。

例外情况是在 SQL ServerAzure SQL 数据库中使用全文搜索。 在此情况下,文档数据内部存在于数据库管理的表中。 一旦存储,将批量处理文档来创建索引。

Diagram of a search pipeline.

技术选择

用于创建外部搜索索引的选项包括 Azure 认知搜索Elasticsearch,以及基于 Apache SolrAzure HDInsight。 这些技术每一种都可以基于文档集合来填充搜索索引。

  • 认知搜索提供索引器,这些索引器可为文档(从纯文本到 Excel 和 PDF 格式)自动填充索引。 还可以将机器学习模型附加到索引器,以分析图像和非结构化文本,查找可搜索的内容。

  • 在 HDInsight 上,Solr 可以为许多类型(包括纯文本、Word 和 PDF)的二进制文件编制索引。 在构造索引后,客户端可以通过 REST API 访问搜索接口。

如果将文本数据存储在 SQL Server 或 Azure SQL 数据库中,则可以使用数据库中内置的全文搜索。 数据库可以基于同一数据库中存储的文本、二进制或 XML 数据来填充索引。 客户端使用 T-SQL 查询进行搜索。

注意事项

  • 处理自由格式文本文档的集合通常需要密集型计算,而且非常耗时。

  • 为了高效地搜索自由格式文本,搜索索引应当支持具有相似构造的词语进行模糊搜索。 例如,使用词元化和语言词干分析构建的搜索索引可以将包含“ran”和“running”的文档与“run”的查询进行匹配。

作者

本文由 Microsoft 维护, 最初由以下贡献者撰写。

主要作者:

后续步骤