搜索原理分析
主要分成两个部分来进行处理的一个是索引,另一个是查找。
索引:
索引是一个多步操作,其目标是建立一个结构,这将使数据搜索更有效的:。搜索它解决了一个问题,我们的SQLbased曾与我们的引擎效率。 工具根据不同的全文检索,操作,有一部分是不被视为工作的一部分核心索引和有时不包括在内(参见图1.5):。让我们每一个看操作
■第一个操作需要的是收集信息例如,数据库中提取信息,从A网的网页抓取新的,或由一个系统作出反应引发的事件。 一旦检索到,每行,每一个HTML页面,或每个事件将被处理:。
■第二次行动中,搜寻的文字转换成表示原始数据文件。文件是在一个容器举行的文本表示的数据, 关于搜索,以便该行表示,HTML页,事件数据,和。 不是所有的原始数据,最终会在文件中,只有查询件有用的搜索将被包括在内。 虽然书的标题和索引内容的意义,它可能是不必要的索引的URL指向封面图片。 或者,这个过程可能还需要进行分类的数据,而页面标题的HTML页面的重要性,可能有更多的比的核心。 这些项目将可能存储在不同的领域。 想想作为一个字段设置文档。 该领域的概念问题的是第1步我们的行程发动机解决我们的一个基于SQL的搜索;某些列有较显着比其他爆满。
■第三次手术将处理的每一个领域,并提取文本块的原子信息一全文搜索引擎的理解:字。 此操作是至关重要的技术性能全文搜索,但也为集丰富的功能。 除了分块成字的句子,图1.5索引进程。 收集数据,并将其转换为文本。 从代表性的数据只支持文本,适用于文字处理和存储索引结构:14。章节搜索1个国家最先进的这次行动准备的数据为基础,以应付额外的SQL问题,我们一直面临的搜索引擎对象的根或茎,同义词搜索。 使用取决于全文搜索工具,这些额外的功能提供了定制的箱或不和可以,但核心sentence分块是永远存在的。
■索引过程的最后一次操作是存储在您的文档(可选),并创建一个优化的结构,将让搜索查询快。 那么是什么神奇的背后优化结构? 没什么,除了1.2节中的索引在数据库中,我们已经看到,但该指数在关键采用的是字,而不是个人)的值的字段(参见图1.6。 该指数的其他信息存储每个字。 这些信息将有助于我们解决以后的顺序按相关的问题,我们面对我们的SQL引擎的搜索,词频,词的位置,偏移是值得注意的。 他们让搜索引擎知道“流行”一词是在一个给定的文档,它的立场相比,一个字。索引时是十分必要的发动机性能的一个搜索,搜索是真正的看见它的一部分(在从某种意义上说,唯一可见的功能您的用户将永远关心)。 虽然每个工程师都知道,力学真的是什么让一个好车,没有用户将下降索引结构爱上赛车,除非它具有良好的弯曲的线条,易于图1.6优化全文查询使用一个专门的。 每个标题字的用作结构的关键在索引中。 对于一个给定的单词(键),配套的ID列表存储以及词频和位置:。全文搜索一个有希望的解决方案,15车道。 索引是搜索引擎我们的力学和搜索是useroriented波兰将钩子我们的客户。
查找:
如果我们使用我们的搜索引擎SQL作为,我们必须手工写了很多搜索逻辑。 它不仅是重新发明轮子,但很可能我们的车轮看起来更像是一个圆形广场比。 搜索用户需要查询从一个有效的清单,并返回结果和相关的配套订购。 像索引,搜索是一个多步骤的过程,如图所示为1.7。 我们将走过的台阶上,看他们如何解决这个问题,我们的搜索引擎已经看到在发展的基础,我们SQL的。第一个操作就是建立查询。 工具根据不同的全文检索,查询的方式来表达可以是:■基于字符串,以文字为基础的查询语言。 根据不同的重点,这种语言可以简单的文字处理和逼近运营商,有复杂的布尔运算符, 场的限制,以及更多!
■编程API的为先进,严格控制查询的纲领性API非常整洁。 它为开发一个灵活的方式来表达复杂的查询,并决定如何公开查询的灵活性,用户(可能是)休息服务公开的接口通过一个具象状态传输()。一些工具将专注于基于字符串的查询,一些关于编程API,和一些两者。 由于查询语言或API是搜索重点放在全文,它最终被更简单(复杂)写比其SQL等效,有助于降低发动机的问题之一,我们曾与搜索我们的SQL为基础的:复杂。在第二次手术,姑且称之为分析,是适当的责任采取的句子或名单的话,运用类似的操作完成的索引时间(块图1.7搜索过程。从用户或程序的要求,名单确定的话,找到符合这些文件的话,消除不匹配的文件,并整理相关的结果。16第1章最先进的成字,茎或语音说明)。 这一点至关重要,因为该操作结果,这是共同的语言,使用索引和搜索互相交谈,恰好是该指数在一个存储。 如果相同的操作集是不实行这一搜索将不会找到索引的话,不是那么有用! 这种共同语言是表演的基石全文搜索(另一个问题,我们曾与我们的SQL引擎的搜索)。依据下列文件)之间的共同语言索引和搜索,第三次手术(发现将读取索引和检索索引信息与每个匹配的单词(见图1.8)。 请记住,每个字,该指数可以存储的文件清单相匹配,频率,在一个文档中的单词的位置,等等。 隐含的协议是,该文件本身是没有加载,这就是高效率的原因之一,为什么全文搜索是:文档没有被载入知道它是否符合或不排序。下一步操作(过滤和)将处理该指数从信息检索和建立的文件清单(或更确切地说,文件处理程序)。从现有的资料(配套文件每字,字频,和词的位置),搜索引擎可以排除从匹配的文件清单。 更重要的是,它能够为每个文件计算分数。 它的分数越高,越高的文件将在结果列表。 关于得分长时间的讨论是12可在一章,但同时让我们一值看它的一些因素影响:
■在多一个查询涉及,越接近它们在文档中,较高的职级的研究。
■查询涉及多个单词,更被发现在一个单一文件,较高的排名。
■频率越高的词匹配的文件,更高的军衔。
■越少大约一个字,较高的排名。根据如何查询是表达和产品如何计算分数,这些规则可能会或可能不适用。 这份名单是在这里给你一份文件,感觉什么会影响成绩,因此A的相关性。 这最后一部分,解决了最后一个问题面对我们的SQL引擎的搜索:按用户订购的相关结果。一旦有序文件清单准备好,全文搜索引擎的结果公开。 它可以通过编程API或通过网页。图1.8显示了一个结果网页从谷歌搜索引擎。听起来我们已经找到了完美的解决方案来解决我们的问题。 现在让我们来看看市场的全文搜索解决方案,在种满。