2

我在业余时间开发了一个仿照谷歌的搜索引擎。

我使用位于http://infolab.stanford.edu/~backrub/google.html的原始谷歌研究论文作为我的指导方针。

由于我正在开发一个非常非常简化的谷歌版本,我现在根本没有使用 pagerank 算法。

到目前为止,我已经开发了一个简单的解析器和索引器,其结果是我有一个倒排索引,其中包含针对每个唯一单词的命中数、命中位置和文档哈希。

现在我正在尝试开发一个查询引擎。但是,我发现很难为多令牌查询识别最相关的文档。

具体来说,我很难计算文档中查询词彼此的接近程度。

我想到了一种算法,可以扫描每个文档中的查询词,并根据查询词彼此接近的程度计算邻近度分数,但是我怀疑这需要很长时间,我认为有更好的方法这样做我不知道,研究论文太笼统而无法得到答案。

我只是在寻找正确方向的指针。

任何形式的帮助将非常非常非常感激。

4

1 回答 1

3

查看维基百科上“搜索引擎索引”的倒排索引部分http://en.wikipedia.org/wiki/Search_engine_indexing#Inverted_indices

基本上,您希望将给定单词的位置信息保存在文档中,这样可以轻松计算邻近度。此信息保存在索引中。

关键是要为您的文档编制索引,这样您就不需要每次都扫描它们。关键字的搜索是在指向包含这些关键字的文档的索引上完成的。

PS不要忘记您正在尝试使索引尽可能小,因此存储单词位置的间隙或差异将节省相同的内存(如J. Zobel,A. Moffat - 搜索文本引擎的反转文件中所述第 23 页)。

于 2013-09-18T18:35:40.867 回答