美文网首页
第三章 使用 SQL Search - 填充表

第三章 使用 SQL Search - 填充表

作者: Cache技术分享 | 来源:发表于2024-01-19 09:35 被阅读0次

第三章 使用 SQL Search - 填充表

填充表

与任何 SQL 索引一样,定义的 SQL 搜索索引(默认情况下)是在填充新表时构建的,并在随后插入、更新或删除数据时维护的。使用 %NOINDEX 填充表时,可以推迟索引的构建,然后使用 %Build() 方法构建索引。可以向已填充数据的表添加索引,然后构建该索引。

以下示例从 Aviation.Events 表填充 Aviation.TestSQLSrch 表。任何定义的 SQL 搜索索引都会自动构建。此示例插入了大量文本,因此运行可能需要一分钟左右的时间:

INSERT OR UPDATE INTO Aviation.TestSQLSrch (UniqueNum,CrashDate,Narrative) 
    SELECT %ID,EventDate,NarrativeFull FROM Aviation.Event

此示例将 INSERT OR UPDATE 与使用唯一键定义的字段一起使用,以防止重复执行创建重复记录。

执行 SQL 搜索

可以在 SQL 查询 WHERE 子句中使用 SQL 搜索语法来对一个或多个文本项执行文本搜索。这些文本项可以是单词或单词序列(基本索引)或 NLP 语义实体(语义索引)。多个文本项是隐式 AND 搜索;所有指定的项目必须以任何顺序出现在文本中。 SQL 搜索的语法如下:

WHERE %ID %FIND search_index(indexname,'search_items',search_option,'language','synonym_tables')
  • indexname 是为特定列定义的 SQL 搜索索引的名称。
  • search_items 是要搜索的文本项(单词或 NLP 实体)列表,用引号引起来。文本项由空格分隔。项目由字母数字字符串和可选的通配符语法字符组成。默认情况下,文本项不区分大小写(请参阅 LOWER 参数)。可用的 search_items 语法如下所述。
  • search_option 是指定要执行的搜索类型的索引选项整数。可用值包括 0(语法搜索)、1(带词干的语法搜索)、2(带分解和词干的语法搜索)、3(带模糊搜索的语法搜索)和 4(带正则表达式的语法搜索)。如果 search_option=4,则假定 search_items 包含单个正则表达式字符串。有关更多详细信息,请参阅正则表达式。请注意,出于性能原因,SQL 搜索不支持一些更深奥的正则表达式语法形式; $LOCATE ObjectScript 函数支持这些语法形式。
  • language 是要应用的 NLP 支持的语言模型,指定为两个字符的字符串。例如,“en”指定英语。如果指定“*”,查询将执行自动语言识别。
  • synonym_tables 是一个包含同义词表名称的字符串,或者是逗号分隔的同义词表列表。

执行基本索引搜索时,SQL 搜索通过是否存在一个或多个空格字符来识别单词。句子标点符号(句号、逗号、分号或冒号后跟空格)将被忽略。 SQL 搜索将所有其他标点符号视为文字。例如,SQL 搜索将“touch-and-go”视为单个单词。数字中的连字符或小数点等标点符号被视为文字。必须指定引号字符和撇号。可以通过将其加倍来指定单引号字符。

默认情况下,文本被标准化为小写字母(不区分大小写)。还执行其他特定于语言的规范化,例如规范化仅字符宽度不同的日语字符。

可以使用语义索引执行任何基本索引搜索(单词、共现或位置短语)。尝试使用基本索引执行语义索引搜索会导致 SQLCODE -149 错误。

相关文章

  • 第五章 SQL定义表(三)

    第五章 SQL定义表(三) 使用DDL定义表 可以使用标准DDL命令在InterSystems SQL中定义表: ...

  • 十五、SQL Alias(别名)

    通过使用 SQL,可以为列名称和表名称指定别名(Alias)。 SQL Alias 表的 SQL Alias 语法...

  • chapter16:创建高级联结

    使用表别名 SQL允许给表名起别名,理由如下: 缩短SQL语句; 允许在单挑SELECT语句中多次使用相同的表。例...

  • mysql中的left join、right join、join

    sql准备 各种join的使用 left join 即为以sql语句中的左边的表为主要表关联右边的表,其中使用on...

  • tp5获取数据表前缀

    在使用原生sql语句,获取表前缀 使用 __PREFIX__ 获取表前缀

  • 复习sql(三)

    sql别名 通过使用 SQL,可以为表名称或列名称指定别名。通过使用sql,可以为表名称或列名称指定别名基本上,创...

  • 关系数据库标准语言SQL

    第三章 关系数据库标准语言SQL 重点:SQL语言的特点、掌握SQL语言的关系表定义及更新操作、掌握SQL语言强大...

  • iformix数据库jdbc连接工具

    使用 建立表对象 编写SQL 直接调用

  • 连表查询:sql1992和sql1999

    sql1992 sql分类 1.笛卡尔积 (表乘表) 2.等值连接 表的连接条件使用“=” 3.非等值连接 表的连...

  • 5数据库sql语句

    [TOC] SQL语句 1.使用SQL语句插入数据 在SQL语句的编辑区域,我们使用insert语句向数据表当中插...

网友评论

      本文标题:第三章 使用 SQL Search - 填充表

      本文链接:https://www.haomeiwen.com/subject/hpododtx.html