我有appx。我希望将2TB文本转换为可搜索的数据库,我通常会在其中搜索数据库中是否存在2-4个单词表达式(例如,我可能会搜索以查看短语“这些是四个单词” ,或“三个连续的单词”出现在文本的任何地方)。
这些搜索将经常发生,因此设置数据库以尽可能少地使用处理非常重要。我还希望尽可能减少开销,以便减少我需要的数据库服务器数量。
有人对我应该如何设置这个数据库有任何建议吗?
例如,我正在考虑做一个有组织的链表| id | word1 | word2 | (所有三个生命键)所以对于表达“这些是四个字”,我首先搜索“这些是”,然后我搜索“是四个”,检查是否有“这些是”的匹配是1 id低于“are four”,然后为“four words”做同样的事情。但我认为必须有一种更有效的方法。
编辑:我将使用此数据库的唯一事情是进行这2-4个字的完全匹配搜索,它是供内部使用的。我希望这个数据库能够做的就是让我知道我的所有信息文件中是否存在一个2-4字的表达式,仅此而已。
答案 0 :(得分:2)
有人有任何建议吗? 我应该如何设置这个数据库?
就个人而言,我首先排除使用MySQL's full-text search和每个开源,全文搜索引擎的可能性。有一个list of Open Source search engines on Wikipedia。我还排除使用Google Custom Search。哎呀,在我尝试自己的产品之前,我甚至会考虑使用商品。
至少,研究他们的代码可能会给你一些关于索引结构的想法。
如果您正在考虑在SQL中构建链接列表,那么您可能希望在进入太远之前构建一个小测试。我不认为这是可行的,但我可能是错的。
完全全文搜索需要做很多工作。 (想想邻近搜索 - 在“多种失败方式”的3个单词中找到“有”。)重新发明这个轮子可能不是你最好的时间。