搜索索引

已完成

创建并填充索引后,可查询索引来搜索索引文档内容中的信息。 尽管可基于简单字段值匹配来检索索引项,但大多数搜索解决方案都使用全文搜索语义来查询索引

全文搜索介绍了对基于文本的文档内容进行分析以查找查询词的搜索解决方案。 Azure AI 搜索中的全文搜索查询基于 Lucene 查询语法,它提供了一组丰富的查询操作,可用于在索引中搜索和筛选数据以及对其进行排序。 Azure AI 搜索支持 Lucene 语法的两种变体:

  • Simple - 一种直观语法,可轻松执行匹配用户提交的文本查询词的基本搜索。
  • Full - 一种扩展语法,支持复杂筛选、正则表达式和其他更复杂的查询。

客户端应用程序通过指定搜索表达式以及确定表达式的计算方式和结果返回方式的其他参数,将查询提交到 Azure AI 搜索。 使用查询提交的一些常见参数包括:

  • search - 包含要查找的字词的搜索表达式。
  • queryType - 要计算的 Lucene 语法(simple 或 full)
  • searchFields - 要搜索的索引字段。
  • select - 要包含在结果中的字段。
  • searchMode - 包含基于多个搜索词的结果的条件。 例如,假设要搜索“舒适酒店”。 如果 searchMode 值为 Any,会返回包含“comfortable”和/或“hotel”的文档;如果 searchMode 值为 All,结果将限制为同时包含“comfortable”和“hotel”的文档。

查询处理由 4 个阶段组成:

  1. 查询分析。 计算搜索表达式并将其重新构造为相应子查询树。 子查询可能包括字词查询、短语查询和前缀查询。其中,字词查询在搜索表达式中查找特定的字词,例如 hotel;短语查询查找搜索表达式中用引号指定的多词短语,例如“free parking”;而前缀查询查找具有指定前缀的词,例如 air*,这将匹配 aircon、air-conditioning 和 airport。
  2. 词法分析 - 根据语言规则对查询词进行分析和优化。 例如,文本转换为小写,并且移除不必要的非索引字(例如“the”、“a”、“is”)。 然后,字词转换为其根形式(例如,“comfortable”可能会简化为“comfort”),并且合成词拆分成其构成词。
  3. 文档检索 - 将查询词与索引词进行匹配,并标识匹配的文档集
  4. 评分 - 基于词频/逆文档频率 (TF/IDF) 计算为每个结果分配相关性分数

注意

有关查询索引的详细信息,以及有关简单和完整语法的详细信息,请参阅 Azure AI 搜索文档中的 Azure AI 搜索中的查询类型和组合