第五章 使用 SQL Search – 验证 SQL 搜索项字符串
验证 SQL 搜索项字符串
可以使用 %iFind.Utils.TestSearchString()
在方法来验证 search_items
字符串。此方法使能够检测语法错误和逻辑运算符的不明确使用。例如,“word1 AND word2 OR word3”
未通过验证,因为它在逻辑上不明确。添加括号可将此字符串澄清为“word1 AND (word2 OR word3)”或“(word1 AND word2) OR word3”
。
以下示例将此 SQL
搜索实用程序作为 SQL
函数调用:
SELECT %iFind.TestSearchString('orange AND (lemon OR lime)')
TestSearchString()
返回 %Status
值:有效的 search_items
字符串返回状态 1
。无效的 search_items
字符串返回以 0
开头的对象表达式,后跟编码的错误信息。
模糊搜索
SQL
搜索支持模糊搜索来匹配包含“几乎almost
”与搜索字符串匹配的元素(words or entities)
的记录。模糊搜索可用于解决书写中的微小变化(color vs. colour)
、拼写错误(collor vs color)
以及不同的语法形式(color vs. colors)
。
SQL
搜索通过比较两个单词之间的编辑距离来评估模糊匹配。编辑距离是将一个单词更改为另一个单词所需的最小单字符编辑(插入、删除或替换)次数。所需的单字符编辑的最大数量称为最大编辑距离。 SQL
搜索最大编辑距离默认为 2
个字符。最大编辑距离分别应用于搜索字符串中的每个元素。对于 SQL Search Basic
索引,它应用于搜索字符串中的每个单词。对于 SQL
搜索语义索引,它应用于搜索字符串中的每个 NLP
实体。 (以下示例假定使用 SQL Search Basic
索引。)
例如,当最大编辑距离 = 2
时,短语 “analyse programme behaviour”
是“analyze program behavior”
的模糊搜索匹配,因为搜索字符串中的每个单词的编辑距离相差(最多)2
个字符: analyse=analyze
(1
个替换),programme=program
(2
个删除)behaviour=behavior
(1
个删除)。
小于或等于最大编辑距离的单词是对具有相同或更少字符数的任何单词的模糊搜索匹配。例如,如果编辑距离为 2
,则单词“ab”将匹配任何两个字母单词(2
个替换)、任何一个字母单词(1
个替换、1
个删除)、任何包含“a
”的三个字母单词或“b”(1
次替换,1
次插入),以及按该顺序同时包含“a”和“b”的任何四字母单词(2
次插入)。
- 所有
SQL
搜索索引类型都支持模糊搜索:基本、语义和分析。在基本索引上,它对单个单词执行模糊搜索。在语义索引上,它对各个NLP
实体执行模糊搜索。 - 模糊搜索不能与通配符搜索结合使用。
要激活 search_index()
的模糊搜索,请将 search_option
指定为 3
(默认编辑距离为 2
的模糊搜索)或 3:n
(编辑距离指定为 n
个字符的模糊搜索)。以下示例显示了编辑距离为 4
的模糊搜索的 SQL
搜索:
SELECT Narrative FROM Aviation.TestSQLSrch WHERE %ID %FIND
search_index(NarrBasicIdx,'"color code" program','3:4','en')
设置 3:1
设置编辑distance=1
,这在英语中适合匹配大多数(但不是全部)单数和复数单词。设置3:0
设置编辑distance=0
,这与没有模糊搜索的SQL
搜索相同。
要为 SQL
搜索方法指定模糊搜索,请设置 pSearchOption = $$$IFSEARCHFUZZY
。
原文地址:https://blog.csdn.net/yaoxin521123/article/details/135739643
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_62571.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!