SQL分别存储文档中每个单词的最有效方法
|
这是我的情况(或者见底部的TLDR):我正在尝试建立一个系统,通过几个文档搜索用户输入的单词并返回包含这些单词的文档.用户将搜索数千个文档,每个文档长度为10-100页,并存储在网络服务器上. 我现在的解决方案是将每个唯一的单词存储在一个带有ID的表中(英语中只有120 000个相关单词),然后在一个单独的表中存储单词id,它所在的文档,以及它出现在该文档中的次数. 例如:文件foo的文字是
和文档栏的文本是
文件表将有 id |名称 1 'foo' 2 'bar' 单词表: id |字 1 'abc' 2 'def' 3 'ghi' Word文档表: 字ID | doc id |事件 1 1 2 1 2 1 2 1 1 2 2 1 3 2 1 正如您所看到的,当您拥有数千个文档并且每个文档都有数千个独特的单词时,Word文档表会非常快速地爆炸并且需要很长时间才能进行搜索. TL; DR我的问题是: 如何在SQL数据库中存储来自大型文档的可搜索数据,同时保留使用我自己的搜索算法的能力(我知道SQL有.docs和pdf内置的一个)基于自定义因素(如出现,以及其他)没有一个完全庞大的表,用于将每个单词链接到文档中的所有条目及其在该文档中的属性? 很抱歉长时间阅读并感谢您的帮助! 解决方法您是否考虑过使用lucene搜索API的C#.net实现,而不是使用SQL Server构建自己的搜索引擎?看看 https://github.com/apache/lucene.net(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- SQL Server误区:数据的损坏和修复
- 在新的Firebase控制台中,我无法编辑实时数据库的名称,也无法
- SQL Server 使用SqlBulkCopy时应注意表中使用缺省值的列
- SQLServer与Oracle常用函数实例对比汇总
- sql-server – 我应该使用SqlGeometry还是SqlGeography?
- sql – SELECT列表中子查询内的不同LISTAGG
- SQL Server 参数化查询之where in和like实现分析
- sql-server – Int主键 – 超出int范围
- .net – 当元数据在SQL数据库中时,存储/检索数百万个文件的
- mysql数据库索引损坏及修复经验分享
