Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于PDF SQL Server 2008全文搜索的问题仅限于嵌入文本?_Sql_Sql Server 2008_Pdf_Full Text Search - Fatal编程技术网

关于PDF SQL Server 2008全文搜索的问题仅限于嵌入文本?

关于PDF SQL Server 2008全文搜索的问题仅限于嵌入文本?,sql,sql-server-2008,pdf,full-text-search,Sql,Sql Server 2008,Pdf,Full Text Search,我好奇的是,假设我有100个PDF。它们都有“快乐苹果”的字样。让我们假设其中只有20个嵌入了“快乐苹果”的文本 当我搜索“快乐苹果”时,我会收到全部100份文档还是只收到20份?我找不到关于这个问题的明确答案。如果没有关于您的搜索工具和实际PDF的任何进一步信息,很难回答 如果文本为1,则会找到“快乐苹果”。不压缩,2。没有加密,3。不奇怪的构造,4。未重新编码,或5。重新编码,但Unicode的转换表存在且正确 ad 1:通常PDF中的数据流是压缩的,使用标准集合中的一个或多个算法(通常是L

我好奇的是,假设我有100个PDF。它们都有“快乐苹果”的字样。让我们假设其中只有20个嵌入了“快乐苹果”的文本


当我搜索“快乐苹果”时,我会收到全部100份文档还是只收到20份?我找不到关于这个问题的明确答案。

如果没有关于您的搜索工具和实际PDF的任何进一步信息,很难回答

如果文本为1,则会找到“快乐苹果”。不压缩,2。没有加密,3。不奇怪的构造,4。未重新编码,或5。重新编码,但Unicode的转换表存在且正确

ad 1:通常PDF中的数据流是压缩的,使用标准集合中的一个或多个算法(通常是LZW或Flate)

广告2:PDF可能会用密码加密,以防止随意检查。使用当前技术,安全级别从中等难度到理论上无法破解

广告3:单个字符可能以任何顺序出现在您的页面上。用于创建字符串的软件可能会根据自己的喜好将文本字符串分成不同的部分,甚至在任意位置绘制每个字符,并省略所有空格。只有对每个文本片段的绝对x和y坐标进行严格排序,才能显示原始文本

ad 4:如果字体被子集,PDF编写器可能会决定将“h”存储为
0
,“a”存储为
1
,“p”存储为
2
(依此类推)。正确的标志符号仍然与这些代码关联,但“文本”现在可能在文本流中显示为“0 1 2 3 4 1 2 5 6”。此外,即使它不子集字体,PDF编写器也可以随意移动字符

ad 5:为了恢复这种重新编码,软件可能包括一个ToUnicode表。这是为了再次将字符代码关联回原始Unicode值;每个重新编码的字体一个表。如果缺少表,通常没有直接的方法来创建它

甚至还有一个我没有想到的广告6:文本可能只是略图或出现在位图中

使用命令行grep等通用工具只能搜索最简单的PDF。对于其他任何东西,你都需要一个好的PDF解码工具——它越好,你可以在这个列表中勾选更多的点。那么,除了5号和6号


(稍后编辑)哦,等等。你把你的实际问题弄得模糊不清,完全偏离了我的目标,我想是“搜索整个短语还是单个单词?”


好事情是,上述观点仍然成立。如果你无论如何都无法在PDF中搜索,那么实际问题就没有意义了。

如果你能澄清为什么要区分“有文字”和“有嵌入文字”,那么你可能已经找到了答案。@Jongware否,这是基于只有一个能做到这一点的前提。这又回到了我的问题——谢谢你的完整回答。我的问题的答案其实就在你最后的13个字里