美文网首页
第五章 使用 SQL Search - 验证 SQL 搜索项字符

第五章 使用 SQL Search - 验证 SQL 搜索项字符

作者: Cache技术分享 | 来源:发表于2024-01-21 08:59 被阅读0次

第五章 使用 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=analyze1 个替换),programme=program2 个删除)behaviour=behavior1 个删除)。

小于或等于最大编辑距离的单词是对具有相同或更少字符数的任何单词的模糊搜索匹配。例如,如果编辑距离为 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

相关文章

  • mysql 批量修改字符集

    1.修改表字段字符集 语句: 导出 sql: 2.修改表字符集 语句: 搜索数据库表 sql: 导出 sql: 3...

  • sql优化 - 基于oracle

    select语句优化 select查询的生命周期 在共享池中搜索sql语句是否存在 -- 缓存 验证sql语句...

  • Chapter 5 Advanced SQL

    高级SQL(Chapter 5) 使用其他语言调用SQL 动态SQL 运行时以字符串形式构建SQL查询→提交查询→...

  • 二十一、ElasticsSearch中使用terms、range

    1、terms 相当于sql中的in,多值搜索 GET /forum/article/_search { "que...

  • 模式匹配

    模式匹配 sql模式匹配允许使用"_"匹配任何单个字符,"%"匹配任意数目字符(包括零字符)。使用sql模式时,不...

  • 第五章 SQL定义表(三)

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

  • 十二、SQL 通配符

    SQL 通配符 在搜索数据库中的数据时,您可以使用 SQL 通配符。 SQL 通配符 在搜索数据库中的数据时,SQ...

  • sql通配符

    SQL 通配符 在搜索数据库中的数据时,您可以使用 SQL 通配符。 在搜索数据库中的数据时,SQL 通配符可以替...

  • sql通配符使用-特殊符号处理-escape

    SQL 通配符在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。SQL 通配符必须与 LIKE 运算符...

  • 2018-07-17

    sql笔记1 sql笔记2 case when then 比较字符串 left join 最近使用left joi...

网友评论

      本文标题:第五章 使用 SQL Search - 验证 SQL 搜索项字符

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