我正在开发一个在业余时间模仿谷歌的搜索引擎。
我使用位于http://infolab.stanford.edu/~backrub/google.html的原始谷歌研究论文作为我的指导方针。
因为我正在开发一个非常非常简化的google版本,所以我现在根本不使用pagerank算法。
到目前为止,我已经开发了一个简单的解析器和索引器,其结果是我有一个倒排索引,其中包含每个唯一单词的命中数量、命中位置和文档哈希。
现在我正在尝试开发一个查询引擎。然而,我发现很难识别与多令牌查询最相关的文档。
具体地说,假设我在计算文档中查询词彼此的接近度时遇到了困难。
我已经想到了一种算法,它扫描每个文档中的查询词,并根据查询词彼此接近的程度来计算接近度分数。但我怀疑这将需要很长时间,我认为有一种更好的方法可以做到这一点,而我并不知道这一点,而且研究论文太笼统,无法得到答案。
我只是在寻找一个正确方向的指针。
任何形式的帮助都将不胜感激。
发布于 2013-09-19 02:35:41
看看维基百科http://en.wikipedia.org/wiki/Search_engine_indexing#Inverted_indices上“搜索引擎索引”的倒排索引部分
基本上,您希望保存文档中给定单词的位置信息,这使得计算邻近度变得很容易。此信息保存在索引中。
关键的一点是索引你的文档,这样你就不必每次都扫描它们。关键字的搜索是在指向包含这些关键字的文档的索引上完成的。
附注:不要忘记,您正在尝试保持索引尽可能小,因此存储单词位置的间隙或差异将节省相同的内存(如第23页的J. Zobel, A. Moffat - Inverted Files for Search Text Engines中所述)。
https://stackoverflow.com/questions/18878544
复制相似问题