随笔分类 -  搜索引擎

搜索引擎相关的
基于HtmlParser的网络爬虫
摘要:一、目标获取网页中的超链接及链接名,如从http://www.hao123.com/开始,抓取所有hao123链接到的超链接,再以获取到的链接网页为目标,获取它所链接到的网页。二、环境及开发工具环境:Java工具:MyEclipse开发包:如图三、原理网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。而htmlparser能够很容易地提取到网页的信息,例如对HTML进行有效信息搜索、链接提取、用于自动给页面的 阅读全文
posted @ 2013-02-03 13:59 烤德 阅读(3139) 评论(6) 推荐(4) 编辑
基于Heritrix+Lucene的搜索引擎构建(6)——搜索UI与结果页面
摘要:设计一用户界面,例如基于B/S结构的:把Lucene等程序包和开发的检索程序(类)导入到检索页面中,编写结果页面代码,例如searchresult.jsp:<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%@ page import="java.io.IOException,java.io.StringReader,java.util.ArrayList, org.apache.lucene.analysis.Ana 阅读全文
posted @ 2013-01-13 15:19 烤德 阅读(1406) 评论(4) 推荐(1) 编辑
基于Heritrix+Lucene的搜索引擎构建(5)——搜索部分
摘要:Lucene提供了检索工具,在基于Lucene实现检索时,我们主要使用以下几个类(或接口):1)IndexSearcher:是lucene中最基本的检索工具,所有的检索都会用到IndexSearcher工具;2)Query:查询,lucene中支持模糊查询,语义查询,短语查询,组合查询等等,如有TermQuery,BooleanQuery,RangeQuery,WildcardQuery等一些类。3)QueryParser: 是一个解析用户输入的工具,可以通过扫描用户输入的字符串,生成Query对象。4)Hits:在搜索完成之后,需要把搜索结果返回并显示给用户,只有这样才算是完成搜索的目的。在 阅读全文
posted @ 2013-01-11 22:25 烤德 阅读(1139) 评论(0) 推荐(1) 编辑
基于Heritrix+Lucene的搜索引擎构建(4)——索引建立
摘要:所谓索引建立,就是对一堆文档的内容建立一个索引表,当然是传说中的倒排索引。倒排索引:倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)。为了继续说明倒排文件,看看一下两个概念点:(1)顺排文件假设有网页P1,P2,……,Pn,给每个网页文件赋予一个编号Pid,给每个关键字赋予一个编号keyi,假设key是网页文件中的一个关键字,ni表示该关键 阅读全文
posted @ 2013-01-07 23:01 烤德 阅读(1459) 评论(3) 推荐(2) 编辑
基于Heritrix+Lucene的搜索引擎构建(3)——页面信息内容抽取
摘要:搜索引擎无非是提供对Web内容的方便检索,以至于能够便捷的获取浏览到相关的页面。因此,在通过Heritrix等网络蜘蛛获取Web资源以后,首要的任务就是抽取Web页面的内容。基于java的页面抽取工具有很多,例如,抽取HTML页面的有HtmlParser、Jsoup等,至于Word、Excel等文件的内容,也有相应的工具。关于HtmlParser、Jsoup等页面内容抽取可以参考相关文献.如《HTML抽取工具Jsoup》。关于Word等文件,建议学习使用一款叫POI的开源工具来实现:Apache POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。目前POI已经有了 阅读全文
posted @ 2013-01-06 23:06 烤德 阅读(1573) 评论(8) 推荐(2) 编辑
基于Heritrix+Lucene的搜索引擎构建(2)——索引与搜索框架Lucene
摘要:Lucene是apache软件基金会jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene是一个基于Java的全文搜索,不是一个完整的搜索应用,而是一个代码库和API,可以方便地为应用提供搜索功能。 实际上Lucene的功能就是将开发人员提供的若干个字符串建立索引,然后提供一个全文搜索服务. 阅读全文
posted @ 2013-01-05 22:41 烤德 阅读(1665) 评论(0) 推荐(1) 编辑
基于Heritrix+Lucene的搜索引擎构建(1)——网络蜘蛛Heritrix
摘要:网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件,流程图所示。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止, 如图所示。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对 阅读全文
posted @ 2013-01-04 21:41 烤德 阅读(2199) 评论(0) 推荐(3) 编辑
基于Heritrix+Lucene的搜索引擎构建(0)——概述
摘要:系统功能需求:1.可自定义要搜索的网站列表;2.可对目标列表网站的网页内容进行检索。系统主要功能模块:网络蜘蛛:采集、解析并保存目标列表网站的内容(网页)。全文索引/检索:为目标列表网站内容建立索引,提供内容的全文检索。采取方案:网络蜘蛛——采用开源框架Heritrix,Heritrix是一个爬虫框架,可加如入一些可互换的组件。下载页面:http://crawler.archive.org/index.html。如何使用Heritrix可参考相关文献,也可笔者的《使用Heritrix爬虫爬取网页》。这里不再进行详细阐述。全文索引/检索——该部分基于Lucene实现的。Lucene是apache 阅读全文
posted @ 2013-01-03 23:12 烤德 阅读(1623) 评论(1) 推荐(2) 编辑
使用Heritrix爬虫爬取网页
摘要:在配置好heritrix后,可以输入形如:http://localhost:8080的服务器IE地址,进入UI界面登陆。则可开始建立网页爬行抓取任务。1.首先启动Heritrix后台监听程序,然后登录WebUI.成功登录WebUI后,初始界面如图所示:2. 选择上面一排导航菜单中的“Jobs”链接,开始建立一个抓取任务,如图所示:3.创建一个Job(Create New Job)有四种选择方式:Based On Existing Job、Based On a recovery、Based On a profile、With Default。我们选择第三种方式,点击“Based On a pro 阅读全文
posted @ 2012-12-22 22:12 烤德 阅读(3416) 评论(0) 推荐(0) 编辑
JE中文分词testing
摘要:import jeasy.analysis.MMAnalyzer;public class JEtest { public static void main(String[] args) { String test="姚明和麦克格雷迪是火箭队的核心,不过在" + "今年的NBA常规赛中,麦克格雷迪的表现并不是很好"; MMAnalyzer analyzer=new MMAnalyzer(); MMAnalyzer.addWord("麦克格雷迪"); //提供添加词组的接口 try{ System.out.print(analyzer. 阅读全文
posted @ 2012-12-22 22:10 烤德 阅读(418) 评论(0) 推荐(0) 编辑
Lucene过滤查询实例
摘要:1 import java.io.IOException; 2 import java.util.BitSet; 3 4 import org.apache.lucene.analysis.standard.StandardAnalyzer; 5 import org.apache.lucene.document.Document; 6 import org.apache.lucene.document.Field; 7 import org.apache.lucene.index.IndexReader; 8 import org.apache.lucene.index.... 阅读全文
posted @ 2012-12-22 22:06 烤德 阅读(968) 评论(0) 推荐(0) 编辑
Lucene正则表达式查询RegenxQuery
摘要:1 /* 2 * 正则表达式查询 3 */ 4 5 6 import java.io.IOException; 7 8 import org.apache.lucene.analysis.standard.StandardAnalyzer; 9 import org.apache.lucene.document.Document;10 import org.apache.lucene.document.Field;11 import org.apache.lucene.index.IndexWriter;12 import org.apache.lucene.index.Term;... 阅读全文
posted @ 2012-12-22 22:04 烤德 阅读(2400) 评论(0) 推荐(0) 编辑
lucene的建立检索学习实例源码
摘要:/** * 测试索引 * @author Administrator * */import java.io.*;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.index.IndexReader;import org.apache.lucene.index.IndexWriter;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field;import org.apac 阅读全文
posted @ 2012-12-22 22:01 烤德 阅读(803) 评论(1) 推荐(0) 编辑
Heritrix的Modules界面不能改变选择项的问题
摘要:具体的原因分析见“Heritrix的Modules界面不能改变选择项的问题”原因:找相关的Options文件是在Modules相对路径下的,而Modules目录是在 conf目录下。Classpath没有找到需要的文件目录。解决方法:在Eclipse里面设置conf为Classpath( 在Eclipse的Run Dialog中,Classpath标签Table,选中User Entries,然后右边会有Advance选项,选Add External Folder,把你的Conf加进去就行了)。再试,在Modules页面中的功能正常了。这里只贴图解决办法,原谅我的理解能力,我看那篇日志好久才明 阅读全文
posted @ 2012-12-22 21:52 烤德 阅读(205) 评论(0) 推荐(0) 编辑