第三章 使用 SQL Search - 填充表

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

第三章 使用 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')

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

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

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

上一篇下一篇

猜你喜欢

热点阅读