2009-12-16 128 views
0

首先,不,我不是问,请告诉我Google是如何构建在两个句子中的。我所要求的是稍有不同。我有一个充满用户输入的文本数据的数据库。我们也为他们提供了稍后搜索这些数据的功能。问题是,我们现在做一个简单的全文搜索并以任何顺序返回结果。我想根据体重,用户输入某种东西的频率来计算结果。一个用户可以键入在以下的例子:基于上述根据以前的用法排列搜索结果的算法

“foo”的 “博” “鲍勃” “鲍勃” “鲍勃” “博” “foo2的”

数据,'b'上的搜索应该返回bo和bob,但bob应该首先列出。这是根据使用情况最相关的。

好奇,我应该研究什么算法来以有效的方式构建这个算法?任何基于常见网络算法(我知道这不仅仅是网络特定的)的书籍会解释这一点吗?

+0

寻找此...谢谢..(Y) – Nakshatra 2015-06-22 11:04:46

回答

0

我不知道该怎么你会在数据库中的情况下做到这一点,但这里是去了解的一种方式:

使用trie存储每个唯一字和计数多久它被使用。当你的用户开始输入时,trie可以让你有效地抓住所有带有给定前缀的字符串,然后你可以使用“计数”作为键来排序。

0

我们使用apache solr进行搜索。 在这个技术中,我认为,这通常是通过增强来完成的。因此,索引您的数据,每天大概如此,然后根据用户查询提升单个文档。