第四章 使用 SQL Search - SQL search_items 语法

文章目录

  • [第四章 使用 SQL Search - SQL search_items 语法](#第四章 使用 SQL Search - SQL search_items 语法)

基本索引 search_items 可以包含以下语法:

词搜索:

Argument Description
word1 word2 word3 指定这些确切的单词必须出现在文本中的某个位置(以任何顺序)。 (逻辑与)。您可以指定单个单词或由空格分隔的任意数量的单词。
word1 OR word2 NOT word3,word1 OR (word2 AND word3) search_items 可以包含 ANDORNOT 逻辑运算符。 AND 与用空格分隔单词相同(隐式 AND)。 NOT 在逻辑上等同于 AND NOTsearch_items 还可以使用括号对逻辑运算符进行分组。在分组括号中指定多个单词时,需要显式 AND:(word2 AND word3)。如果省略显式 AND,则 (word2 word3) 将被解释为位置短语。可以使用 \ 转义字符将 AND、OR、NOT 指定为文字而不是逻辑运算符: \and
?word word? w?rd w??d 问号通配符精确指定任何类型的一个非空格字符。一个或多个 通配符可以用作前缀、后缀或在单词内使用。可以结合吗* 通配符。可以使用 \ 转义字符来指定 ?作为字面意思:\?
*word,word*,*word*,w*d 星号通配符指定 0 个或多个任何类型的非空格字符。星号可以用作前缀、后缀或在单词中使用。可以使用 \ 转义字符将 * 指定为文字: \*

同现词搜索:

Argument Description
[word1,word2,...,range] 同现搜索。指定这些确切的单词必须出现(以任何顺序)在范围指定的邻近窗口内。可以指定任意数量的单词或多单词短语。多单词短语被指定为由空格分隔且没有分隔标点符号的单词。单词(或位置短语)以逗号分隔,最后一个逗号分隔的元素是可选的数字范围。单词可以指定星号通配符。 范围可以指定为 min--max 或简单地指定为 max,默认最小值为 1。例如,1--55。范围是可选的;如果省略,则默认为 1-20。范围计数包括所有指定的单词。 同现搜索不能与 search_option=4(正则表达式)一起使用。

位置短语搜索:

注意:可以使用双引号"word1 word2 word3"或括号 (word1 word2 word3) 来分隔位置短语。由于括号也用于对逻辑运算符进行分组,因此优先使用双引号。

Argument Description
"word1 word2 word3" 这些确切的单词必须按指定的顺序依次出现。单词之间用空格分隔。请注意,没有执行语义分析;例如,"短语"中的单词可能是一个句子的最后一个单词和下一个句子的开头单词。星号通配符可以应用于短语中的各个单词。 search_items 中的文字括号字符必须用引号引起来。
"word1 ? word3","word1 ? ? ? word5" 问号表示在短语中的指定单词之间恰好找到一个单词。可以指定多个单个问号,每个问号用空格分隔。
"word1 ?? word6" 双问号(中间没有空格)表示在短语中的指定单词之间找到 06 个单词。
"word1 [1--3] word5" 方括号表示短语中指定单词之间的单词间隔数:min-max。该间隔被指定为可变范围,在本例中为 13 个缺失单词。

除了基本索引语法之外,语义索引 search_items 还可以包含以下 NLP 实体搜索语法:

完整实体和部分实体搜索:

Argument Description
{entity} 指定 NLP 实体的确切措辞。星号通配符可以应用于实体中的各个单词。
<{entity} 小于号前缀指定以指定单词结尾的 NLP 实体。实体中必须有一个或多个单词出现在指定单词之前。
{entity}> 大于号后缀指定以指定单词开头的 NLP 实体。

可以指定多个search_item,用空格分隔。这是一个隐式 AND 测试。例如:

java 复制代码
SELECT Narrative FROM Aviation.TestSQLSrch WHERE %ID %FIND 
search_index(NarrSemanticIdx,'<{plug electrode} "flight plan" instruct*',0,'en')

表示叙述性文本必须包含一个或多个以"plug electrode"结尾的 SQL 搜索实体、位置短语 "flight plan",以及带有通配符后缀的单词"instruct",允许 "instructor", "instructors", "instruction", "instructed"等。这些项目可以以任何顺序出现在文本中。

相关推荐
zxrhhm几秒前
SQLServer TOP(Transact-SQL)
sql·sqlserver
Reese_Cool11 分钟前
【C语言二级考试】循环结构设计
android·java·c语言·开发语言
海里真的有鱼12 分钟前
Spring Boot 项目中整合 RabbitMQ,使用死信队列(Dead Letter Exchange, DLX)实现延迟队列功能
开发语言·后端·rabbitmq
工作中的程序员16 分钟前
ES 索引或索引模板
大数据·数据库·elasticsearch
严格格20 分钟前
三范式,面试重点
数据库·面试·职场和发展
zxctsclrjjjcph28 分钟前
【C语言】常见的C语言概念
c语言·开发语言
小灰灰爱代码33 分钟前
C++——求3个数中最大的数(分别考虑整数、双精度数、长整数的情况),用函数模板来实现。
开发语言·c++·算法
微刻时光37 分钟前
Redis集群知识及实战
数据库·redis·笔记·学习·程序人生·缓存
Eiceblue40 分钟前
Python 复制Excel 中的行、列、单元格
开发语言·python·excel
项目題供诗43 分钟前
尚品汇-秒杀商品存入缓存、Redis发布订阅实现状态位(五十一)
开发语言·php