执行字数的高效实现

时间:2011-11-17 20:32:03

标签: mysql oracle

我想请你就我的论文研究提出一些建议。

我正在构建一个应用程序,其中我将有1000篇200-300个单词的文章,然后是“单词频率列表”--30,000个单词,每个单词根据英语语料库中的用法进行评分,例如: “of” - 20168次,“the” - 6464684次,“aquaintance” - 15次等等....

现在我想用数据列表查询数据库,我想要一篇包含大部分单词的文章,大多数时候。

E.g.: my list: different, contemporary, persistency.
Article 1 contains contemporary 1x
article 2 contains contemporary 3x
So the returned article would be no 2.

问题

  1. 我应该在数据库中的单词和文章之间创建任何关系。我的意思是一千篇文章,每一篇300字(不是唯一的),这将是一个很好的列表。或者指数是否足够?

  2. Mysql vs Oracle?使用Mysql我会使用SOLR进行索引,我知道oracle有一个索引工具,但没有更多关于它的信息。

  3. 具有此类功能的oracle是免费提供的吗?而且它也很容易处理,因为我从来没有使用它,但如果设置很简单,我会去做。

  4. 非常感谢!

1 个答案:

答案 0 :(得分:3)

我建议您使用Hadoop执行WordCount操作。这将是后来可扩展的(你是一名研究员!)并且效率很高。此外,在数据库中创建单词和文章之间的关系看起来不是一个简洁的解决方案。

如果您选择Hadoop,它将提供MapReduce的功能。它的工作原理如下:

  • 在多个物理机器之间划分所有输入文本文件
  • 每台机器执行字数统计算法
  • 从所有机器收集结果,然后合并以得出最终结果。

您不必担心实现这些功能,这里是tutorial

WordCount作业也可以在一台机器上本地运行。