我有appx。我想把2TB的文本转换成一个可搜索的数据库,在那里我通常会搜索数据库中是否存在2-4个单词表达式(例如,我可能会进行搜索,看看文本中是否出现了短语"these are four words“或"three consecutive”)。
这些搜索将经常发生,所以将数据库设置为使用尽可能少的处理是非常重要的。我还想尽可能地减少开销,这样我就可以减少我需要的数据库服务器的数量。
有没有人对我应该如何设置这个数据库有什么建议?
例如,我正在考虑做一个链表,这个链表是由| id |word1|word2| (包含所有三个存在键)组成的,所以对于表达式“than are four word”,我首先搜索“than are",然后搜索"are four",检查是否有匹配的”then are“比"are four”低1 id,然后对"four words“做同样的事情。但我认为必须有一种更有效的方式来做这件事。
编辑:我将使用这个数据库做的唯一一件事就是做这些2-4个单词的精确匹配搜索,它是供内部使用的。我希望这个数据库能够做的就是让我知道在我所有的信息文件中是否存在一个2-4个单词的表达式,仅此而已。
发布于 2011-06-26 19:47:16
有人对我应该如何设置这个数据库有什么建议吗?
就我个人而言,我首先会排除使用MySQL's full-text search的可能性,以及每一个开源的全文搜索引擎。有一个list of Open Source search engines on Wikipedia。我也排除了使用Google Custom Search的可能性。见鬼,在我尝试推出自己的产品之前,我甚至会考虑一个商业产品。
至少,研究他们的代码可能会让你对索引结构有一些了解。
如果您正在考虑在SQL中构建一个链表,那么,您可能希望在深入了解它之前构建一个小型测试。我不认为这是可行的,但我可能错了。
要真正做好全文搜索,需要做大量的工作。(考虑接近搜索-在“许多失败的方法”的3个单词内找到“有”。)重新发明这个轮子可能不是最好的利用你的时间。
https://stackoverflow.com/questions/6483070
复制相似问题