首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用分布式数据库构建对等搜索引擎的算法

利用分布式数据库构建对等搜索引擎的算法
EN

Stack Overflow用户
提问于 2014-12-13 16:21:46
回答 1查看 449关注 0票数 3

我想要建立一个分布式的洪流搜索引擎。

我知道分布式哈希表用于寻址对等网络中的节点。不过,我不完全理解每个节点是如何获得一个全局唯一ID的。

不过,我不确定我需要什么算法和数据结构来构建分布式数据库。它显然需要高度冗余,并且尽可能高效地搜索。

我真正需要的是指向某些资源方向的指针,最好是一些代码示例。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-14 16:00:14

不过,我不完全理解每个节点是如何获得一个全局唯一ID的。

我想说的是,这与你的问题的标题和具体的实现并没有什么关系。但是通常情况下,它要么是随机的,要么是基于其公共IP的散列,+一些随机子部分模块,对子网进行一些调整。例如,看看bittorrent的安全节点ID生成算法

不过,我不确定我需要什么算法和数据结构来构建分布式数据库。

这是一个不平凡的话题,我不认为能在几段中得到回答。DHT在其基础上不允许枚举存储的值或由多个节点协调的任何复杂操作,它们所做的就是直接的键值查找。要在此基础上实现关键字搜索,您必须完成相当多的算法和语言处理,并为基本的DHT协议添加扩展以适应这些需求。

以下是需要解决的几个问题的不完整列表:

  • 不均匀的字分布给DHT键空间的某些部分带来了更多的负载--这在某种程度上可以通过节点移动自己、目标地址故障转移或对负责目标密钥的节点集的扩展来缓解。简单地说一些非常常用的词
  • 在多个搜索项上执行联合或交叉操作--这在某种程度上可以通过布鲁姆过滤器来完成。
  • 将没有空格的脚本切片到搜索项中--这个问题也必须由lucene这样的非分布式索引引擎来解决。afaik使用N克
  • 防止包含特定单词的流行内容淹没共享该单词的所有其他结果
  • 信任。即防止关键字垃圾邮件攻击

我不确定DHT是否是正确的方法。我模糊地回忆起基于语言/关键字本身的其他度量标准,其中节点在键空间中移动自己,被使用中的单词吸引,从而提供必要的网络容量。

我建议点击谷歌学者寻找关键字搜索相关的修改或DHT的替代覆盖。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27460997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档