我知道如何在一台机器上开发一个简单的倒排索引。简而言之,它是一个保存在内存中的标准哈希表,其中:- key --一个单词-值--一个单词位置列表,例如,代码在这里:Index#Java。
问题:
现在,我试图使它分布在n个节点之间,然后依次:
我对自动切分特别感兴趣。欢迎任何想法或链接!
谢谢。
发布于 2013-09-25 08:48:22
分片本身是一项相当复杂的任务,在现代数据库中还没有完全解决。分布式数据库中的典型问题是盖定理,以及其他一些低级别和相当具有挑战性的任务,例如在添加新的空白节点后重新平衡集群数据,或者在数据中自然出现不平衡。
在我见过的DB中实现的最好的数据分发是在Cassandra中实现的。然而,全文搜索尚未在Cassandra中实现,因此您可以考虑在其基础上构建您的分布式索引。
其他一些已经实现的选项是弹性搜索和SolrCloud。在给出的例子中,缺少一个重要的细节,那就是词干。有了单词词干,你基本上可以搜索任何形式的单词,如“唱歌”,“唱歌”,“歌手”。卢塞尼和前面的两个解决方案已经为大多数语言实现了它。
https://stackoverflow.com/questions/18990857
复制相似问题