将 Word/PDF 文档从文件系统索引到 SQL Server

2024-01-01

我正在尝试为我遇到的问题提出一个简单的解决方案,因为到目前为止我发现的所有这些似乎都太复杂了!

情况是我们使用专有应用程序来管理我们业务的大部分方面。它有一个SQL Server 2005后端数据库,该数据库相当大。该应用程序还允许将 Word 和 PDF 文档附加到我们广泛使用的记录中,这些记录存储在服务器上的文件系统中,文件名在数据库中引用。不幸的是,应用程序中的搜索功能很差,所以我正在尝试构建自己的版本。

到目前为止,我已经有了一个带有搜索框的简洁 ASP.NET 页面,该页面允许用户输入要搜索的单词,并在其他字段(例如部门、日期等)上过滤结果。 存储过程 I'我们在数据库中写入的内容会在数据库中的几个不同字段中查找他们正在搜索的单词。我真正的目标是谷歌式的“一次搜索统治所有”效果,用户不必指定他们期望在哪里找到他们正在寻找的单词,他们只会在任何地方得到点击它出现在数据库中。这正在发挥作用。

我现在要添加的是搜索功能,包括“附加”到记录的文档文本。它们都是 .doc 或 .pdf 文件,但如果我无法搜索 .pdf 文件,那也不会是世界末日。

在我的理想世界中,我要做的就是找到一些软件来索引包含文档的文件夹(目前大约有 100,000 个文档,平均约为 100k),并使用该索引填充现有数据库中的表,以便我可以只需将该表包含在我的搜索中即可。我希望它只包含它索引的每个唯一单词的记录以及引用包含该单词的文件系统中的文档的连接表。

鉴于这似乎很奇怪,并且没有任何软件可以做到这一点,或任何接近它的东西,据我所知,您会推荐什么解决方案?服务器上已经运行了 dtSearch,对我感兴趣的文件进行索引。但是,虽然我可以费力地浏览文档,试图弄清楚如何通过我自己的网页(我已经开始要做,并且发现很繁重),这将必须是对 SQL 数据库之一的单独搜索。我无法以统一的方式从文件索引和数据库返回结果。

那么,从最终希望将索引词存储在数据库中出发,以实现全文检索,有人会建议什么呢?


SQL Server 具有全文搜索 (http://msdn.microsoft.com/en-us/library/ms142571.aspx);它支持 PDF 和 Word 文件(尽管有一些问题 - 安装可能有点棘手)。该链接指向 SQL Server 2008 - 但该功能自 SQL Server 2000 以来就已存在。

因此,超级简单 - 您的解决方案将要求您将文档加载到 SQL Server 中,并修改您的存储过程以使用内置的自由文本搜索功能来查询它们。

保持文档的文件系统和数据库版本同步可能是一个挑战,但除此之外,我认为解决方案应该相当简单。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Word/PDF 文档从文件系统索引到 SQL Server 的相关文章

  • SQL IN 子句比单个查询慢

    我正在使用 Hibernate 的 JPA 实现和 MySQL 5 0 67 MySQL 配置为使用 InnoDB 在执行 JPA 查询 转换为 SQL 时 我发现使用IN子句比执行单个查询慢 例子 SELECT p FROM Person
  • 如何在vba中查找命名形状的索引号

    我运行了以下代码 for i 1 to activedocument Shapes count debug Print activedocument shapes i name next 并获得了形状列表 但是缺少一个形状 我选择了一个未包
  • 是否可以在 Hibernate 中使用分析函数?

    有没有办法在 Hibernate 中使用类似 sql server 的分析函数 就像是 select foo from Foo foo where f x max f x over partition by f y 您正在寻找本机 SQL
  • 查找成对元素的索引

    给定目标 b a 和输入 x0 b a z z x1 b a z z x2 z z a a x3 z b a a 目的是找到连续的位置 b a 元素并获取输出 gt gt gt find ba x0 0 gt gt gt find ba x
  • Oracle数据库中的自增主键

    我想在 SQL Server 的列中实现标识或自动递增值 CREATE TABLE RollingStock Id NUMBER IDENTITY 1 1 Name Varchar2 80 NOT NULL 如何才能做到这一点 正如 Orb
  • sql查询中where子句中的CASE语句

    我正在尝试在我正在处理的查询的 where 子句中编写一个 case 语句 我正在水晶报告中导入代码 我基本上是想说明变量 类型 是否设置为 创建 以便在where子句中为该日期范围运行 否则为不同的日期范围运行 它一直给我一个错误 我似乎
  • 大型数据集的报告工具/查看器

    我有一个数据处理系统 可以根据其处理的数据生成非常大的报告 我所说的 大 是指该系统的 小 执行在转储到 CSV 文件中时会产生大约 30 MB 的报告数据 而大数据集大约为 130 150 MB 我确信有人有更大的想法 大 但这不是重点
  • Wingdings/Symbol 字符与其 Unicode 等效项之间的映射

    MsWord 使用 Wingdings 和 Symbol 字符作为项目符号 默认情况下它们的十六进制值为 F0A7 和 F0B7 我想将项目符号转换为其 Unicode 等效项 当然 这取决于实际使用的字体 因此 F0A7 Wingding
  • 有向图 SQL

    我有以下数据集 它表示有向图中的节点 CREATE TABLE nodes NODE FROM VARCHAR2 10 NODE TO VARCHAR2 10 INSERT INTO nodes VALUES GT TG INSERT IN
  • mysql变量赋值:如何强制赋值顺序?

    由于mysql是一种声明性语言 我找不到强制赋值变量顺序的方法 采取这个查询 SET v1 0 SET v2 0 SELECT v1 v2 FROM MyTable table WHERE v1 v2 is not null AND v2
  • 删除 MongoDB 查询结果中的 "scanAndOrder" : true

    所以我的数据库中有一个带有以下分片键的集合 cl yyyy mm user id N 当我执行以下查询时 db collection find cl 2012 03 user id in users id lt new ObjectId 4
  • T-SQL 中的不等式测试

    我刚刚在 WHERE 子句中遇到了这个 AND NOT t id id 这与以下内容相比如何 AND t id id Or with AND t id lt gt id 我总是自己写后者 但显然其他人有不同的想法 其中一个的表现会比另一个更
  • 对 SQL Server 2005 结果进行分页

    如何在 SQL Server 2005 中对结果进行分页 我在 SQL Server 2000 中尝试过 但没有可靠的方法来做到这一点 我现在想知道SQL Server 2005是否有任何内置方法 分页的意思是 例如 如果我按用户名列出用户
  • 在打开的Word文档中找到未知的姓名和姓氏,将其复制并使用excel VBA粘贴到excel .activesheet中的单元格A12中

    你好 Stackoverflow 社区 我的目标是编写一个宏 在之前打开 活动的 Word 文档中查找未知姓名 或两个名字都写成 Firstname Secondname 和姓氏 或两个姓氏写成 Firstsurname Secondsur
  • SQL限制数据库中的最小值和最大值

    CREATE TABLE TBL CD CDnr int identity 1 1 CDTitel nvarchar 80 NOT NULL CDduur int CDprijs smallmoney 所以我正在创建这个表 有什么方法可以将
  • 根据 SQL 查询的集合生成成员的“散点图”结果

    我有一个staff包含工作人员的数据库表 其中user no and user name列 我还有一个 department 包含员工可以加入的部门的表 其中dept no and dept name作为列 因为员工可以是多个部门的成员 所
  • Elasticsearch - EdgeNgram + 突出显示 + term_vector = 不好的突出显示

    当我使用带有edgengram min 3 max 7 front term vector with positions offsets的分析器时 文档包含文本 CouchDB 当我搜索 couc 时 我的亮点是 cpu 而不是 couc
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • Linq-to-entities,在一个查询中获取结果+行数

    我已经看到了有关此事的多个问题 但它们已经有 2 年 或更长 的历史了 所以我想知道这方面是否有任何变化 基本思想是填充网格视图并创建自定义分页 所以 我还需要结果和行数 在 SQL 中 这将类似于 SELECT COUNT id Id N
  • SQL Server XQuery 返回错误

    我正在 SQL Server 2012 中对 XML 数据类型列执行查询 数据示例如下

随机推荐

  • 从 Google Play 删除未发布的应用

    我在我的 Google Play 帐户中创建了一个新应用程序 我没有发表还没完成 它刚刚准备好发布 由于它尚未发布 有什么方法可以将其从我的帐户中永久删除吗 我找不到任何删除或删除按钮 我读here https stackoverflow
  • 在 iOS 中集成 Google 和 Facebook 登录 - AppDelegate openURL

    我正在尝试将 facebook 和 google 登录集成到我的应用程序中 但遇到了问题 两者都需要将以下内容添加到 Appdelegate 中的 openURL 方法中 return GIDSignIn sharedInstance ha
  • 为什么 `print(object)` 显示 `<__main__.对象位于 0x02C08790>`?

    我不断得到 lt main Camera object at 0x02C08790 gt 我不知道为什么 我希望代码基本上在一个循环中从 Calc Speed 转到 Counter 然后返回到 Calc Speed class Camera
  • MSBuild:如何为 Web 部署项目(VS2010)构建 Web 部署包?

    我将一个网站项目 带有 Web 部署项目 从 VS2008 迁移到 VS2010 现在我可以在 VS2010 中为 Web 部署项目制作 构建部署包 效果非常好 但我找不到通过 MSBuild 执行相同操作的方法 我回答我的一个问题 经过大
  • COM 字符串 (BSTR) 和 .NET 字符串有什么区别?

    这只是字节组合来 编码 数据的方式吗 我很好奇 因为我想知道 RCW 如何自动获取 NET 字符串并将其转换为 COM BSTR 我猜测它只是形成了从 NET 字符串转换而来的有效 COM BSTR 相关 我可以使用 NET 中的字节类型构
  • 从上下文资产中的 Uri 加载 MediaPlayer

    我的资产目录中有一个音频文件 资产 音频 dance mp3 如果我运行 context getAssets list audio 它出现了 但是当我尝试使用 MediaPlayer create context uri 时它总是失败并返回
  • 安装适用于 Python 的 TextBlob 时遇到问题

    我是编程新手 我正在尝试安装 Python 的 TextBlob 库来帮助我做一些事情 遗憾的是 我在安装 TextBlob 时遇到了麻烦 更不用说使用它了 我使用的是Windows 这似乎让事情变得更加困难 我希望我可以只运行 Linux
  • StructureMap 和嵌套泛型

    我想知道是否有一种方法可以在其中连接嵌套泛型StructureMap无需指定内部类型或创建特定于类型的接口 我意识到这有点令人困惑 因此编码示例可能是对我正在寻找的功能的更好解释 public interface IParser
  • 使用 jQuery 切换元素的属性?

    使用 jQuery 构建树形菜单 并且我希望它可以访问 因此我使用 aria 属性 我想要做的是在单击 输入时将 aria expanded 属性从 true 切换为 false 我已经尝试过 但显然不正确 this closest ul
  • 下拉列表中的地图位置名称

    我的应用程序必须使用文本框集成搜索位置名称 Map kit有什么方法可以实现这种功能吗 下图显示了我真正需要的 No MapKit没有任何方法来实现这种类型的属性 为此 您必须实现自己的代码 即使用 UISearchbarCantrolle
  • 为什么鱼绑定在 mac os 中不起作用?

    我正在尝试使用一些鱼绑定 但无法让它们在我的 Apple sierra 中同时使用 iterm2 和终端工作 例如 当我使用Alt d它应该删除一个单词 它插入了字母 我在这里错过了什么吗 您需要将终端配置为将 option alt 键视为
  • 不能在赋值中使用类型 interface {} 作为类型 person:需要类型断言

    我尝试转换interface 构造person package main import encoding json fmt func FromJson jsonSrc string interface var obj interface j
  • 更新后Android资源编译失败

    更新 android studio 后 我的项目崩溃并出现以下错误 Android resource compilation failed Output C Users aliya Desktop EventsToday app build
  • 为一个名称 urllib2 发送多个值

    我正在尝试提交一个包含复选框的网页 并且我最多需要选中其中 10 个复选框 问题是当我尝试将它们分配给字典中的一个名称时 它只分配最后一个而不是全部 10 个 那么我该如何做到这一点 这里是请求代码 forms ref ck ref typ
  • 将日期和时间输入字符串组合为日期对象

    我有两个输入标签用于从用户处选择日期和时间 p Start Date p p p
  • 为 CMake 引入新的编译器

    我们使用一个特定的编译器 称为 Cadul 它有自己的库 目标等 问题是 与 GNU Intel Clang 等 标准 编译器相比 CMake 不支持它 首先我想使用交叉编译 但它不起作用 因为主机和目标平台是相同的 然后我查看了模块 在其
  • 如何用 Swift 创建波浪路径

    我希望我的节点以正弦曲线波行进 我尝试将其用于 CGPath 如何创建遵循正弦曲线的 CGPath 除了手动查找曲线上的点之外 还有其他方法吗 或者我可以只传递正弦函数吗 let action SKAction followPath
  • Gradle 无法同步“无法找到可选库”

    我必须重新安装系统 今天当我尝试与 gradle 同步时 我在 Android Studio 中收到此错误 Warning Unable to find optional library org apache http legacy 我的项
  • 我想将 std::string 转换为 const wchar_t *

    有什么方法吗 我的电脑是AMD64 std string str BOOL loadU const wchar t lpszPathName int flag 0 当我使用时 loadU str VS2005编译器说 Error 7 err
  • 将 Word/PDF 文档从文件系统索引到 SQL Server

    我正在尝试为我遇到的问题提出一个简单的解决方案 因为到目前为止我发现的所有这些似乎都太复杂了 情况是我们使用专有应用程序来管理我们业务的大部分方面 它有一个SQL Server 2005后端数据库 该数据库相当大 该应用程序还允许将 Wor