第四章 使用 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"等。这些项目可以以任何顺序出现在文本中。

相关推荐
Ajiang28247353041 小时前
对于C++中stack和queue的认识以及priority_queue的模拟实现
开发语言·c++
幽兰的天空2 小时前
Python 中的模式匹配:深入了解 match 语句
开发语言·python
远歌已逝2 小时前
维护在线重做日志(二)
数据库·oracle
qq_433099404 小时前
Ubuntu20.04从零安装IsaacSim/IsaacLab
数据库
Dlwyz4 小时前
redis-击穿、穿透、雪崩
数据库·redis·缓存
Theodore_10225 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
工业甲酰苯胺5 小时前
Redis性能优化的18招
数据库·redis·性能优化
没书读了6 小时前
ssm框架-spring-spring声明式事务
java·数据库·spring
----云烟----6 小时前
QT中QString类的各种使用
开发语言·qt
lsx2024067 小时前
SQL SELECT 语句:基础与进阶应用
开发语言