第二章 使用 SQL Search

2024-01-18  本文已影响0人  Cache技术分享

第二章 使用 SQL Search

SQL Search

本主题介绍 SQL Search工具,这是一种用于执行上下文感知文本搜索操作的工具。要使用SQL Search,必须为包含要搜索的文本的每个列定义 SQL 搜索索引。然后,可以使用标准 SQL 查询以及包含 InterSystems SQL 搜索语法的 WHERE 子句来搜索文本记录。查询将返回包含指定搜索项的所有记录。还可以突出显示返回记录中的匹配文本。

在你开始之前

需要有一个已启动并正在运行的 IRIS 实例,并且具有有效的许可证密钥,可以提供对 IRIS 自然语言处理器 (NLP) 的访问。 (可以从管理门户查看许可证密钥:选择“系统管理”,然后选择“许可”。)

本文档中的示例使用 Aviation.Event SQL 表中的数据。如果希望使用此示例数据,可以 https://github.com/intersystems/Samples-Aviation 中获取。 (不需要了解有关 GitHub 的任何信息或拥有 GitHub 帐户。)找到 README.md 文件的内容,该文件显示在 GitHub 存储库中包含的文件名和目录下方。滚动到 README.md 文件底部的“安装说明”部分并完成这些步骤。

SQL 搜索的索引源

可以使用 SQL Search 来搜索 %String 数据类型或 %Stream.GlobalCharacter(字符流)数据类型中的文本。

要执行 SQL Search,要搜索的列必须具有已定义的 SQL 搜索位图索引。 SQL 搜索索引有四个级别。这些级别在嵌套子类中定义。每个索引级别都提供前一级别的所有功能,以及特定于该级别的其他 SQL 搜索功能。可以创建以下任何 SQL 搜索索引类型:

每个索引级别都支持前一级别的所有参数,并添加一个或多个附加参数。未指定的参数采用默认值。

以下类定义示例创建一个表,该表在 Narrative 属性(列)上具有语义索引。索引属性可以是数据类型 %String%Stream.GlobalCharacter

   Class Aviation.TestSQLSrch Extends %Persistent [
      DdlAllowed,Owner={UnknownUser},SqlRowIdPrivate,
      SqlTableName=TestSQLSrch ]
  { 
  Property UniqueNum As %Integer;
  Property CrashDate As %TimeStamp [ SqlColumnNumber=2 ];
  Property Narrative As %String(MAXLEN=100000) [ SqlColumnNumber=3 ];
  Index NarrSemanticIdx On (Narrative) As %iFind.Index.Semantic(INDEXOPTION=0,
     LANGUAGE="en",LOWER=1);
  Index UniqueNumIdx On UniqueNum [ Type=index,Unique ];
  }

任何类型的 SQL 搜索索引都支持以下参数:

语义索引(%iFind.Index.Semantic)还支持以下可选参数:

上一篇 下一篇

猜你喜欢

热点阅读