link text我想在SQL Server 2008中使用内置于Windows 2008 Server R2的TIFF IFilter和全文搜索...也是R2。
我已经通过服务器管理器安装了过滤器,并更新了“强制TIFF IFilter为TIFF文档中的每个页面执行OCR”计算机配置中的本地组策略设置 - >管理模板 - > OCR为“已启用。”
我还创建了一个全文目录和一个名为“FileData”的表,如下所示:
CREATE TABLE [FileServer].[FileData](
[FileDataId] [int] IDENTITY(1,1) NOT NULL,
[FileGUID] [uniqueidentifier] ROWGUIDCOL NOT NULL,
[Data] [varbinary](max) FILESTREAM NOT NULL,
[Extension] [nvarchar](100) NULL,
[Filename] [nvarchar](256) NULL,
[Path] [nvarchar](256) NULL,
CONSTRAINT [PK_FileData_FileDataId] PRIMARY KEY CLUSTERED
(
[FileDataId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] FILESTREAM_ON [FILES],
CONSTRAINT [UX_File_FileGUID] UNIQUE NONCLUSTERED
(
[FileGUID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] FILESTREAM_ON [FILES]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [FileServer].[FileData] ADD CONSTRAINT [DF_FileData_FileGUID] DEFAULT (newid()) FOR [FileGUID]
GO
ALTER TABLE [FileServer].[FileData] ADD CONSTRAINT [DF_FileData_FileData] DEFAULT (0x) FOR [Data]
GO
当我将文件插入该表格时,如PDF或文字DOC,我可以稍后使用全文搜索命中文件中的关键字:
我制作了一个巨大的TIFF文件,文本非常清晰(1024 x 768 ...约12个单词)并将其导入到FileData表中。我可以找到其中的每一个字。
SELECT [Path], [Filename], [Data]
FROM [FileServer].[FileData]
WHERE FREETEXT(*, 'Jason') and FREETEXT(Extension, 'tif');
但是,当我使用“真实”TIFF文件(如制造商的数据表)时,我会在搜索关键字时获得ZERO结果。我不知道为什么,并且没有太多关于SQL Server的在线故障排除。
我尝试用各种压缩保存.TIFF文件,没有压缩等等......我只是没有运气。我的测试文件中的文字是CRYSTAL清晰但仍然非常大。我无法想象文件清晰度是问题所在,尽管我认为这是可能的。
为了让你有比较的东西,我拍摄了以下两张图片并导入它们:
WORKING SAMPLE FILE BROKEN SAMPLE FILE
工作样本的结果非常好。这些是全文索引中工作示例的关键字: $ 3.50 © 0004 08 1989年 2010 21 21时35分42秒 235 282 3116 3702 40 48109 89 盛产 吸收 抽象 伴随着 后天 法案 行动 好处 机构 算法 算法 已经 量 阿姆斯特丹 分析 安 出现 应用 乔木 arnficioj artficia1 分配 B.V. 基于 基础 布克 旅 桶 建造 BV 功能 小心 改变 特点 跳棋 分类 classtfier 关闭 认知 比较 竞争 复杂 复杂性 复杂 电脑 面对 迷惑 考虑 持续 不断 一直 做作 信用 治愈 D.E. 数据 德 正经 定义 定义 设计 设计 制定 发现 讨论 烦扰的 中 生态 经济 EECS 功夫 爱思唯尔 文件结束 工程 环境 环境 呃 甚至 事件 例 展示 经验 表达 现存 扩展 面对 面孔 可行 文件 射击 第一 流 以下 格式 游戏 生成 通用 遗传 给 目标 戈德堡 好 holiadd 荷兰 然而 假设 图片 沉浸 免疫的 撞击 隐式 不精确 信息 情报 利益 干预 介绍 不相干 J.H. JH 日志 磅。 大 磅 学习 学习 寿命 长 机 哺乳动物 哺乳动物 哺乳动物 大规模 信息 MI 密歇根州 新 nn0004 nn08 nn1989 nn2010 nn21 nn235 nn282 nn3116 nn3702 nn3d5 $ nn40 nn48109 nn89 吵 北 号 小说 新奇 获得 经常 一 操作 选项 本来 外 拥有 纸 平行 通过 图案 清偿 允许 永动的 永 玩 播放机 播放 可能 漂亮 问题 提供 出版者 出版商 很快 随机 很少 真实 实际 加强 反复 转载 要求 视网膜 评论 修改 机器人 规则 规则 科学 序列 套 显著 简单 只是 小 疏 系统 系统 标记 技术 理论 雷神 斗嘴 时间 tt2135 两次 曲折 二 一般 美国。 大学 上 我们 美国 视觉 第一卷 无 奇迹 世界
但破碎样本的结果只是......好吧,空缺。实际的TIFF图片中没有一个单词: 08 2010 21 21时49分22秒 文件结束 文件 格式 图片 nn08 nn2010 nn21 标记 斗嘴 tt2149
如果有人对接下来的尝试有任何想法,我会全力以赴。
答案 0 :(得分:1)
尝试将非工作图像转换为黑白图像,并查看是否可识别更多单词。
<强>加强>
尝试使用IrfanView(或任何图像工具)将第二张图像的DPI设置为300.然后再试一次。
显然,这些故障排除步骤并非永久解决方案,它们只是帮助隔离问题。
答案 1 :(得分:1)
并非所有OCR引擎都可以处理Color TIFF图像并且更喜欢B / W.我猜测OCR引擎甚至没有处理你的非工作页面,只是发出了一个你看不到的错误信息。
我通过我的OCR运行了非工作图像,并且能够正确提取大部分文本,因此解决方案不是主要问题。
答案 2 :(得分:1)
嗯,事实证明实际问题是图像的尺寸。 ITFF IFilter中的OCR甚至没有试图处理它......太大了。我必须通过反复试验发现这一点,并且找不到任何说明传入TIFF的最大大小/ DPI的文档。有人知道这些规格吗?本文似乎有一些信息:support.microsoft.com/kb/837847但是特定于Sharepoint,我没有时间搞乱设置以查看它是否有效。另外,我真的需要删除大小上限。那里的想法?
答案 3 :(得分:0)
我找到了一些有趣的东西
我使用C#do
Image tiffFile = Image.FromFile(TiffPath);
resultFilePath = Path.Combine(tempFolder, Path.GetFileName(TiffPath));
tiffFile.Save(resultFilePath);
并使用把新的tiff文件放在数据库中,这是工作,我不知道为什么,但解决了我的问题