数据库中的搜索总是准确的吗?

时间:2014-11-19 05:52:19

标签: database algorithm search information-retrieval

数据库中的搜索是否始终准确?

从我们的IR课程考试:数据库管理和信息检索系统有什么区别!

预期答案:数据库是结构化数据,准确度为100%。 IR是非结构化的,并不总是准确的。

1 个答案:

答案 0 :(得分:0)

首先,让我回答你的问题:

  

数据库中的搜索是否始终准确?

没有。一个很好的例子是bloom filters。 Bloom过滤器代表,你可以对它们进行以下操作 1

  • add - 添加元素
  • isInSet - 检查给定元素是否在集合中。

问题是,布隆过滤器是概率数据结构。他们有误报(你问的是那里的一个元素?答案应该是“否”,但算法会产生“是”,但概率很小)

布隆过滤器是结构化的,并不总是返回正确的答案,在某些情况下,人们可能会选择在它们上面实现数据库。

那就是说,我认为问题意图是询问关系数据库,例如SQL。在SQL中 - 您确切地知道您搜索的是什么,并且数据是在可以搜索的表格中构建的,以获得确切的答案 - 它是否包含某个字段?这种数据库通常是为特定任务设计的,您可以随时正确回答,并且有一种非常具体的方法可以将数据插入数据库。另一方面,免费搜索没有这样的奢侈品。任何人都可以以文档的形式插入数据,但您的系统必须对其进行处理,包括来自各种编写者的所有噪音。这导致启发式解决方案有时会导致错误。


(1)布隆过滤器的扩展也允许删除(计算布隆过滤器),并且在布隆过滤器中添加联合以联合两个集合是非常简单的。