一、垂直搜索引擎介绍
垂直搜索引擎是搜索引擎的一种,是搜索引擎的细分和延伸,可以简单地理解为在某个领域的搜索引擎,例如在你的所有文档中搜索相关内容,在你的项目文件中搜索带有“test”字眼的文档。
二、Lucene介绍
Lucene是一款开源的,高性能,可扩展的信息检索工具库;是一个Java实现的jar包用来管理搜索引擎索引库。可以从Lucene官网下载最新版本的Lucene,本文采用的是旧版Lucene,4.6版本,在优快云上有大神提供这个版本的下载。
三、搜索引擎原理
一个完整的搜索引擎例如Google,百度等等,首先要做的事情是信息获取,所谓信息获取,对于他们来说就是利用爬虫技术将网络上的大部分内容爬取下来,至于爬虫如何爬取网络,如何避免网站重复爬取等等问题,这里就不细讲了;当我们在用一个搜索引擎时,它能够在极端的时间内查询到你所需要的信息并排好序发送给用户,在这么短的时间内,在一个庞大的数据库中搜索内容可想而知有多么困难,而搜索引擎之所以能够如此快速地查询关键在于数据库的索引。
网络爬虫将爬取的内容分解、分析,并以巨大的表格形式存入数据库,这个过程就是建立索引的过程;搜索引擎的核心数据结构为倒排索引(Inverted index),倒排索引是相对于正向索引来说的,首先用正向索引来存储每个文档对应的单词列表,然后再建立倒排索引,根据单词来索引文档编号。
用户在输入需要的搜索的内容后,搜索引擎首先要对搜索内容进行分词,然后进行去除停用词等操作,然后再进行搜索,从索引数据库中找出所有包含搜索词的内容。最后一步工作,就是对所有搜索得到的内容进行排序,排序的方法就有些复杂很有意思了,这里暂时不讲,这篇文章实现了建立倒排索引与返回未排序搜索结果。
搜索引擎原理: