搜索文档内容的建议 - Windows搜索是否好?简单的mysql



我正在为一家小型在线文档管理公司编写网络脚本,该公司希望允许用户快速在线搜索其文件的内容。尽管许多帐户很小(低于100 2MB文件),但少数有1000,000个或更多文件。需要支持PDF和DOC/DOCX。二进制文件不会被索引。

我们正在寻找一个提供基本搜索结果的简单解决方案。没有什么太喜欢了。每个用户都有一个主文件夹(并且搜索只会搜索他的子文件夹),因此请记住,搜索系统应该为此是最佳的。.为了说明,如果一个拥有100 MB帐户的人搜索他的主文件夹,它将成为不搜索其他4个TB文件的感觉。

您建议什么?

这是我正在寻找的一些选择:

1)我正在考虑使用Windows搜索此 - 命令行工具或使用API ..但是每个服务器实际上可以有10亿个文件,并且应该立即提供前3个结果。Windows搜索会吗?还是这会产生挫败感?

2)自定义:制作一个简单的开源MySQL数据库程序来保存索引信息。英语中大约有100,000个单词...然后有自定义单词和首字母缩写词..因此,要快速查找,根据单词和用户帐户进行索引是有意义的。我将进行预处理,以便"慢跑"变成"慢跑",而"摆弄"变成"小提琴",以降低数据库的大小。给定150个客户帐户,每个服务器有一个大数据库,或者消除用户ID字段并为每个用户提供DB?

Tables:
Table WorldTable
EnglishWord (pk) | WordID (fk)
Table FileTable
FileID (pk) | FilePath
Table WordIndex
WordID (pk) | FileID (fk) | UserID | SettingsPatternID
Table Settings
SettingsPatternID | Top (bool) | IsWordForm (bool)

iswordform =表明它不是确切的匹配,而是单词的形式。例如:文件中的单词最初是"慢跑"或"跳舞",但以"慢跑"或"舞蹈"的简短形式提交。(如果查询也是一个词形式,则有助于相关性。)iSwordform的可能性很高。top =字是文档的前50个单词(指示标题)

我想要5-15%的小型存储空间。CPU非常宝贵...但是,对于每个文件,这是很多开销,因为每个文件都会在WordIndex中生成数千个记录。

WordID, FileID, UserID, SettingsPatternID
WordID, FileID, UserID, SettingsPatternID
WordID, FileID, UserID, SettingsPatternID

...这是最长的表,wordID是不必要的。

3)哈希,与mysql由于我们知道这将是对单词的搜索,因此纯粹的关系数据库可能不是最好的模型...

将每个单词"哈希"哈希"哈希"更有效。例如:对于每个单词,制作一个2列表。您不需要"查找"表中的单词,因为我们知道它是什么。此列表可以是每个单词的2列表:

Table *The Word*
FileID | UserID | SettingsPatternID
(There would be 100,000 of these. One for each unique word.)
Table Settings
SettingsPatternID | Top (bool) | IsWordForm (bool)

4)我也看过索尔,但我认为这太过杀了。那是一个不好的假设吗?虽然它支持PDF和DOC,但集成也是相当大的工作……我几乎觉得自己要做的工作将是相同的工作,但是当然,作为编码员,我知道假设经常错误。。

想法!!!

4)我也看过索尔,但我认为这太过杀了。那是坏的 假设?虽然它支持PDF和DOC,但也很 整合的工作...我几乎觉得这将是相同的工作 我自己做,但是当然,作为一个编码员,我知道假设是 经常错误...

绝对与Solr 一起使用:集成 更昂贵,但是设置更容易,并且更易于维护。

此外,它已经拥有许多您必须自己实现(并进行调试和维护...)的功能。

但是,我建议回顾索尔的功能,设计围绕这些功能的基本接口,并以书面形式批准。"文本搜索"常常变成一个不言而喻的"我希望系统能够阅读我的思想"。另外,说明有效的文本搜索不是"简单的脚本"。实际上有成千上万的博士学位。涉及语义,词干,相关性,接近性等论文。其中许多论文已经进入了Solr/Lucene。

solr是"过度杀伤",如果您假设 grep可能会满足性能,可伸缩性和结果。相信我,他们不会

您可以尝试建议使用Google机器。它还将有助于建立相对于成本的基准:即,"如果您想要Google的表演,这是Google的价格。没有Google规模经济经济的任何其他临时实施都将花费更多实现相同级别的性能"。

相关内容

  • 没有找到相关文章

最新更新