当前位置: 首页 > news >正文

第二章 使用 SQL Search

文章目录

  • 第二章 使用 SQL Search
  • `SQL Search`
  • 在你开始之前
  • SQL 搜索的索引源

第二章 使用 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 搜索索引类型:

  • 最小索引(%iFind.Index.Minimal):支持使用通配符、模糊搜索和正则表达式进行 SQL 单词和短语搜索。它不支持共现或位置短语搜索或搜索结果的突出显示。
  • 基本索引(%iFind.Index.Basic):支持使用通配符的 SQL 单词和词组搜索。它支持共现和位置短语搜索以及搜索结果的突出显示。
  • 语义索引(%iFind.Index.Semantic ):支持 NLP 实体的 SQL 搜索,并可选择支持否定属性。
  • 分析索引(%iFind.Index.Analytic):支持语义索引的所有 NLP 功能,以及路径、邻近度和优势信息。

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

以下类定义示例创建一个表,该表在 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 搜索索引都支持以下参数:

  • IGNOREPUNCTUATION 指定是否忽略标点符号。对于 %iFind.Index.Minimal,默认值为 1:忽略标点符号。对于所有其他 SQL 搜索索引类型,默认值为 0:标点符号影响搜索结果;文本中的前导标点符号和尾随标点符号必须与搜索字符串中的相同标点符号匹配。
  • INDEXOPTION 指定是否建立索引以允许词干或分解。由于支持这些操作的索引会显着增加索引的大小,因此建议指定 INDEXOPTION=0,除非很可能会使用词干提取或分解。默认值为 0
  • LANGUAGE 指定索引记录时使用的语言。例如,“en”指定英语。使用“*”启用自动语言识别。默认为“en”
  • LOWER 指定查询搜索是否区分大小写。默认情况下, SQL 搜索索引不区分大小写; SQL 搜索在对其建立索引之前将文本标准化为小写。 LOWER 参数确定是否执行小写标准化(LOWER=1,默认值,标准化为小写)。由于语言约定通常在句子开头或在标题中使用单词时将其大写,因此在大多数应用中优选标准化为小写。如果指定 LOWER=0,则查询 search_items 字符串区分大小写。例如,如果指定 LOWER=0,则查询 search_items 字符串“turkey”将仅匹配 turkey,而不匹配 Turkey。如果指定 LOWER=1,则查询 search_items 字符串“turkey”将匹配 turkey 和 Turkey。
  • USERDICTIONARY 允许指定在索引之前应用于文本的用户定义的 UserDictionary 的名称。此参数是可选的,仅供高级使用。

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

  • IFINDATTRIBUTES 允许指定是否识别文本中的否定并存储否定属性。 IFINDATTRIBUTES=1 标识并索引否定。默认值为 IFINDATTRIBUTES=0

相关文章:

  • 使用docker配置semantic slam
  • Python ddddocr 构建 exe 程序后运行报错:Failed Load model ... common_old.onnx
  • Mac M1 Parallels CentOS7.9 Deploy Typecho
  • 考研C语言刷编程题篇之分支循环结构基础篇(一)
  • 从零开始c++精讲:第三篇——内存管理
  • 计算机毕业设计选题分享-ssm租房小程序42196(赠送源码数据库)JAVA、PHP,node.js,C++、python,大屏数据可视化等
  • esp32-c-简单应用笔记
  • python-基础篇-函数
  • 「实战应用」如何用DHTMLX Gantt构建类似JIRA式的项目路线图(二)
  • 软件测试|使用matplotlib绘制箱型图
  • SpringSecurity(07)——JWT整合
  • react和vue的区别
  • 数字身份所有权:Web3时代用户数据的掌控权
  • EXCEL VBA获取幸运数字号码
  • C++---string类
  • [译]前端离线指南(上)
  • 【个人向】《HTTP图解》阅后小结
  • 77. Combinations
  • Brief introduction of how to 'Call, Apply and Bind'
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • HomeBrew常规使用教程
  • JS函数式编程 数组部分风格 ES6版
  • log4j2输出到kafka
  • MySQL-事务管理(基础)
  • nodejs:开发并发布一个nodejs包
  • python 学习笔记 - Queue Pipes,进程间通讯
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • SpiderData 2019年2月16日 DApp数据排行榜
  • TCP拥塞控制
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 前端临床手札——文件上传
  • 如何优雅地使用 Sublime Text
  • 栈实现走出迷宫(C++)
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • #1015 : KMP算法
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (27)4.8 习题课
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (多级缓存)缓存同步
  • (利用IDEA+Maven)定制属于自己的jar包
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (转)IOS中获取各种文件的目录路径的方法
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET 药厂业务系统 CPU爆高分析
  • .Net 知识杂记
  • .net中生成excel后调整宽度
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • @FeignClient注解,fallback和fallbackFactory
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成