Oracle包含返回错误的BLOB正数的函数

每股收益

我正在使用Contains函数在包含PDF或Word文档的BLOB字段中搜索字符串。最近,我进行了以下搜索:

SELECT doc_id 
FROM   table_of_documents
WHERE  CONTAINS (BLOB_FIELD, 'SDS.IF.00005') > 0

返回的大多数记录都是正确的,但其中一些包含PDF的文件中没有“ SDS.IF.00005”,但确实有“ SDS.EL.00005”。

当我说PDF没有搜索词时,我是说我在Adobe Reader中打开它们,然后使用搜索功能和自己的眼球对其进行搜索,而且对文档非常熟悉的人坚持认为该词不存在,因此不应在那里。

我尝试将圆点视为转义字符:SDS\\.IF\\.00005{SDS.IF.00005}但是,我仍然得到相同的结果。

我也尝试设置CONTAINS (BLOB_FIELD, 'SDS.IF.00005') = 100,但是我仍然在里面带文档,SDS.EL.00005而不是SDS.IF.00005

搜索字词中的点SDS.%.00005对Oracle来说意味着什么还是我应该研究如何在Adobe文档中找到肉眼或Adobe文本搜索功能不可见的深层隐藏文本?

谢谢你的帮助。

佩奇

据我所知,CONTAINS是一个执行全文本搜索的Oracle Text函数,因此Oracle可能会根据其BASIC_LEXER来对字符串进行标记该词法分析器.用作单词分隔符。因此,Oracle将您的查询理解为“返回至少与单词'SDS','IF'或'00005'匹配的单词。由于您的PDF可能已使用相同的词法索引器编制了索引,因此从Oracle Text的角度来看,您的PDF包含单词'SDS','EL'和'00005',因此它匹配3个单词中的2个,因此Oracle返回该行。

实际上,“ IF”已包含在Oracle Text默认 停用词列表中(被忽略的词是因为它们太普遍以至于它们大多引入了“噪声”);因此您的查询实际上是“返回至少与'SDS'或'00005'之一匹配的任何内容”。因此,包含文字文本“ SDS.EL.00005”的PDF将为您提供CONTAINS(BLOB_FIELD, 'SDS.IF.00005') = 100(完美的匹配)效果,您对此并不感到惊讶

如果要搜索逐字字符串,我认为您不应该使用Oracle Text,而应该使用plain old实现解决方案DBMS_LOB.INSTR如果那不可行,那么您将必须找到一种方法使Oracle Text在不标记它们的情况下索引这些字符串。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

函数返回错误的返回

来自分类Dev

Oracle SQL LAG函数在Time中返回错误的计算

来自分类Dev

R:返回最小正数

来自分类Dev

在r中建立立方根函数,该函数返回负数和正数

来自分类Dev

(方案)获取列表并返回包含正数,负数和零的计数的新列表

来自分类Dev

TRUNC函数不会导致记录返回包含BETWEEN和FULL数据及时间-ORACLE

来自分类Dev

返回包含Promise的函数的值

来自分类Dev

Python从函数返回错误

来自分类Dev

从函数返回错误的信息

来自分类Dev

RequireJS函数返回错误

来自分类Dev

在Oracle中使用包含LIKE的结构化谓词对命中计数会返回错误结果

来自分类Dev

AngularJS-$ parse.assign不为包含'-'的字符串返回函数错误

来自分类Dev

收到以下错误“函数中包含的选择语句无法将数据返回给客户端”

来自分类Dev

在包含属性的函数中返回函数

来自分类Dev

错误“从序列中获取错误”从C#中的Oracle函数返回表,其中函数使用dblink到SQL Server

来自分类Dev

fork() 返回正数而不是零

来自分类Dev

Oracle:在函数中返回多行

来自分类Dev

Oracle Listagg函数返回null

来自分类Dev

在oracle函数中返回查询

来自分类Dev

为什么C ++函数模板实例化的返回类型包含在错误的函数名称中?

来自分类Dev

一个PHP数组函数,接收正数,返回最大数,如果数组为空,则返回0

来自分类Dev

Oracle Rownum返回错误结果

来自分类Dev

PLSQL ORACLE Not Working 返回错误

来自分类Dev

C中的错误函数返回

来自分类Dev

iOS中的函数返回错误

来自分类Dev

返回外部函数错误

来自分类Dev

函数返回结果,但给出的错误是

来自分类Dev

函数返回错误(Python 3)

来自分类Dev

MySQL函数返回错误值

Related 相关文章

热门标签

归档