2010-01-09 56 views
6

你们知道我在哪里可以找到搜索引擎解析器设计图吗? 我需要了解它如何处理用户输入。正在使用哪些函数/算法?条件。等等。搜索引擎解析器流程图

它不一定是谷歌的。

更新后的问题,搜索引擎解析器

回答

6

您需要关于搜索引擎更好地理解第一剖析。通常有

1)一个网络爬行器,它可以让你想要添加到你的搜索数据空间的文件。这通常完全超出了你所称的“搜索引擎”的范围。

2)一个解析器,它将文档分解为可索引的文本片段。如果通常使用不同的文件格式,人类语言和预处理文本可能是一些固定的记录和流文本。语言学算法(如词干分析 - 搜索Porter Stemmer以获得简单的算法)也适用于此。

3)索引器可能像每个文档的单词倒列表一样简单,或者像你想要的那样复杂,如果你试图像谷歌一样聪明。构建索引是成功搜索引擎真正的魔力部分。通常有多个排名算法放在一起。

4)带有可选查询语言的前端。这是谷歌真的很糟糕的地方,但正如你可以看到谷歌的成功,对98%的人来说可能并不那么重要。但我真的很想念这个。

我想你是在索要(3)索引器。基本上,在经典信息检索文献中有两种不同的算法。向量空间模型和布尔搜索。后者很简单,只需检查搜索词是否在文档中并返回一个布尔值即可。每个搜索项可以给出相关的概率。对于不同的搜索条件,您可以使用贝叶斯概率来总结相关度,并返回排名最高的文档。矢量模型将文档视为所有单词的矢量,您可以在文档之间构建标量矢量产品以判断它们是否靠近在一起 - 这是一个更为复杂的理论。 IR(信息检索)的父亲是杰拉尔德索尔顿,你会在他的名下找到很多文学作品。

这是1999年以前的IR艺术状态(1998年我写了关于一个usenet新闻搜索引擎的文凭论文)。然后谷歌来了,所有的理论进入学术愚蠢和实用无关的垃圾桶。谷歌并没有建立在主流的IR理论基础上。请阅读Srirangan为您提供的链接。它只是一个基于许多不同来源的广告相关功能。在白皮书营销blablabla旁边,您不会在这个区域找到任何东西。这些算法是搜索引擎公司的商业秘密和资本。

对于简单的搜索引擎来看一下lucence库或dtsearch,它总是我的一个嵌入式搜索引擎库的选择。

在开源世界中,关于IR技术并没有太多的示例代码和可用信息。他们中的大多数人都喜欢实施最原始的操作。你必须购买书籍并去大学图书馆才能获得研究文献。

文学,我会建议开始与这本书link text alt text http://ecx.images-amazon.com/images/I/41HKJYHTQDL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg

+0

@Lothar感谢非常详细的解答。你知道任何关于解析器的好文章吗?解析文本与解析编程语言的编译器有何不同? – forme 2010-01-10 08:17:18

+0

好的,如果你真的想要语言自然语言处理,你应该阅读“http://www.amazon.com/Natural-Language-Processing-Python-Steve/dp/0596516495/ref=cm_cr_pr_sims_t”和/或“书面处理在Python中“。这会给你足够的基本理解,以找到正确的搜索条件谷歌或更多的文学。不幸的是,最有趣的东西不能在线提供。 – Lothar 2010-01-10 10:41:45

+0

我现在好奇:)(去当地大学图书馆...) – forme 2010-01-10 21:33:30