CN105045854A - 一种基于Nutch的垂直搜索引擎及方法 - Google Patents
一种基于Nutch的垂直搜索引擎及方法 Download PDFInfo
- Publication number
- CN105045854A CN105045854A CN201510395982.3A CN201510395982A CN105045854A CN 105045854 A CN105045854 A CN 105045854A CN 201510395982 A CN201510395982 A CN 201510395982A CN 105045854 A CN105045854 A CN 105045854A
- Authority
- CN
- China
- Prior art keywords
- nutch
- module
- search engine
- retrieval
- vertical search
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及互联玩搜索引擎技术领域,具体涉及一种基于Nutch的垂直搜索引擎及方法。本发明提出了一种基于Nutch的垂直搜索引擎及方法,能够围绕某一领域或某一专题展开检索,以满足特定人群对信息检索的个性化要求。本发明基于Nutch的垂直搜索引擎包括Nutch模块、预处理模块和聚类模块。Nutch模块用于从网络上搜集网页、建立网页的反向索引、利用反向索引搜索用户查找的关键词并向用户反馈检索结果。预处理模块用于文本的中文分词。聚类模块用于对Nutch模块的检索结果的文本聚类。Nutch模块分别与预处理模块和聚类模块双向通信。本发明垂直搜索引擎的搭建步骤包括(a)系统搭建和(b)服务器端软件配置。
Description
技术领域
本发明涉及互联网搜索引擎技术领域,具体涉及一种基于Nutch的垂直搜索引擎及方法。
背景技术
互联网信息以指数级增长,信息搜索引擎技术也得到空前发展。搜索引擎已经成为人们通过互联网获取信息的重要技术手段。传统搜索引擎,如Google、Baidu等由于搜索反馈信息量巨大而使有用的信息被淹没。特殊用户对信息检索准确率有特殊的要求。对于特殊用户来说,开发功能更先进、效率更高、更人性化的信息检索工具显得极为重要。
发明内容
本发明提出了一种基于Nutch的垂直搜索引擎及方法,能够围绕某一领域或某一专题展开检索,以满足特定人群对信息检索的个性化要求。
本发明解决其技术问题所采用的技术方案为:
一种基于Nutch的垂直搜索引擎,包括Nutch模块、预处理模块和聚类模块。Nutch模块用于从网络上搜集网页、建立网页的反向索引、利用反向索引搜索用户查找的关键词并向用户反馈检索结果。预处理模块用于文本的中文分词。聚类模块用于对Nutch模块的检索结果的文本聚类。Nutch模块分别与预处理模块和聚类模块双向通信。
具体的,Nutch模块包括爬虫子模块和检索子模块。爬虫子模块用于从网络上采集网页数据并建立所述网页的反向索引。检索子模块利用。反向索引对爬虫子模块爬取到本地的网页数据进行关键词检索并将检索结果反馈用户。
具体的,预处理模块采用JE分词算法对Nutch模块采集到的网页文本进行中文分词。
具体的,聚类模块为采用lingo聚类算法的carrot2开源搜索结果分类引擎。
基于Nutch的垂直搜索引擎的搭建方法,步骤如下:
(a)系统搭建
安装Nutch,配置Nutch,编译Nutch。
(b)服务器端软件配置,包括以下子步骤:
(b-1)在服务器上安装Unix操作系统;
(b-2)在用户文件夹下保存Unix版本的JDK和tomcat,完成环境变量设置;
(b-3)将按照基于Nutch的垂直搜索引擎开发得到的运行文件保存到用户文件夹下,完成所述运行文件的自动运行脚本。
(b-4)将按照基于Nutch的垂直搜索引擎开发得到的web工程保存到tomcat中的webapps下。
本发明的有益效果如下:Nutch是一个开源Java实现的搜索引擎,个人、企业都可通过Nutch来构建适合于自身需要的搜索引擎平台,提供适合于自身的搜索服务。Nutch可以让研究者通过配置逐步完善各个模块,从而实现满足其个性化需求的搜索引擎。Nutch的分词器对英文的切分比较完善,对中文只进行单字切分,为实现较好的中文信息的搜索查询,本发明在Nutch中增加中文分词处理,即采用JE分词算法的预处理模块,实现Nutch的中文分词。本发明在Nutch中增加对检索结果的聚类分析,即聚类模块,实现针对某一领域或某一专题的专向检索。Carrot2是一个基于检索结果文本聚类的工具,支持多方数据源和多种聚类算法。Carrot2根据被考察对象的内部或者外部特征,按照一定的要求(如类别数量限制、同类对象的亲近程度等),将相近、相似或者相同特征的对象聚合在一起。本发明基于Nutch架构,并对Nutch进行二次开发,完成配置系统、设定种子集、处理异构文件、切分中文分词、信息聚类以及检索,从而建立垂直搜索引擎。本发明建立的垂直搜索引擎主要围绕某一领域或某一专题展开检索,能够满足特定人群对信息检索的个性化要求。
附图说明
图1为本发明一种基于Nutch的垂直搜索引擎的结构示意图。
具体实施方式
参照图1,实施例的垂直搜索引擎包括Nutch模块、预处理模块和聚类模块。Nutch模块包括爬虫子模块和检索子模块。Nutch模块用于从网络上搜集网页、建立网页的反向索引、利用反向索引搜索用户查找的关键词并向用户反馈检索结果。其中,爬虫子模块用于从网络上采集网页数据并建立所述网页的反向索引。检索子模块利用反向索引对爬虫子模块爬取到本地的网页数据进行关键词检索并将检索结果反馈用户。预处理模块用于文本的中文分词。本实施例中,预处理模块采用JE分词算法对Nutch模块采集到的网页文本进行中文分词。分词是指将一段文本拆成多个检索词的过程,中文分词是自然语言处理和文本挖掘的基础,因此分词问题是实现对全部文本信息检索的首要任务。本实施例采用JE分词算法。JE分词算法采用的是最大匹配算法,按从左至右正向最大匹配和从右到左反向最大匹配,当两种分词结果不一致时,按最少切分原则,取切分词数最少的一种,如果两种分词结果切分的词数一样,取反向最大匹配作为分词的结果。聚类模块用于对Nutch模块的检索结果的文本聚类。本实施例中,聚类模块为采用lingo聚类算法的carrot2开源搜索结果分类引擎。Nutch模块分别与预处理模块和聚类模块双向通信。
实施例中,基于Nutch的垂直搜索引擎的搭建方法包括以下步骤:
(a)系统搭建,包括以下子步骤:
测试环境为Nutch1.0,EclipseSDK3.2.0,JDK6,cygwin,Win7。
(a-1)在Windows环境下应当安装cygwin,安装后应当设定PATH环境变量,设置后进入命令行,运行“bash”命令以运行cygwin。
(a-2)安装Nutch
首先,下载Nutch源代码;其次,在Eclipse中新建一个Java工程;再次,选择从已有的代码中创建,并且指向Nutch源码所在位置;再次,点击下一步,等待Eclipse扫描文件夹;再次,增加文件夹"conf"进classpath,切换到“排序和导出”标签,找到"conf"文件夹并且将其移动到顶端,以使Eclipse能够从"conf"读取配置文件;再次,Eclipse自动将所有的Java文件加入到设置好的classpath中;最后,点击"Source"标签,设置默认的输出文件夹到/bin/tmp_build,点击"Finish"按钮。
(a-3)配置Nutch
首先,修改${nutch}\conf下nutch-default.xml中“plugin.folders”的value为./src/plugin。其次,修改${nutch}\conf下的crawl-urlfilter.txt中#accepthostsinMY.DOMAIN.NAME下的正则表达式为+^http://([a-z0-9]*\.)*。再次,修改${nutch}\conf下nutch-default.xml中http.agent.name的value为nutchtest。最后,Eclipse给出parse-mp3和parse-rtf插件一些非常重要的异常声明。这是因为与Apachelicense协议不相容,一些.jar文件被定义在一些必需的类中却没有被源代码说包含。按照以下网址下载这两个文件。
http://nutch.cvs.sourceforge.net/nutch/nutch/src/plugin/parse-mp3/lib/
http://nutch.cvs.sourceforge.net/nutch/nutch/src/plugin/parse-rtf/lib/
分别拷贝jar文件到src/plugin/parse-mp3/lib和src/plugin/parse-rtf/lib/,并且把这些jar添加到构建路径中。
(a-4)编译Nutch
首先,在nutch目录下建一个文件weburls.txt,写入想要抓取的网址,如http://www.hebust.edu.cn/。其次,点击菜单中的Run>"Run..."在运行配置中新建一个启动配置,在mainclass中选择:org.apache.nutch.crawl.Crawl。再次,切换到自变量标签,程序自变量(tabArguments)设置weburls.txt-dirweburls-depth2-topN50,虚拟变量(VMarguments)设置-Dhadoop.log.dir=logs-Dhadoop.log.file=hadoop.log-Xmx512m。其中,dir为参数为抓取程序的工作目录,threads为参数表示抓取时并发执行的线程数,depth参数表示抓取程序抓取页面的深度,top确定了抓取程序在每一个深度上抓取的页面总数。再次,运行,即可看到Nutch开始爬取网页。运行结束后,最后一行出现finished:crawl字样代表索引建立成功,并且会在crawl目录下创建文件夹来存放抓取到的数据信息。最后,启动tomcat,输入http://localhost:8080,就可以启动搜索引擎,在搜索的文本框输入关键词进行查询。
(b)服务器端软件配置,包括以下子步骤:
(b-1)在服务器上安装FreeBsd1.0版本的Unix操作系统,开启sftp,用filezilla.exe作为数据上传下载工具,用putty.exe作为远程控制工具。
(b-2)在用户文件夹下保存Unix版本的JDK和tomcat,完成环境变量设置,内容如下:
exportJAVA_HOME=/usr/local/diablo-jdk1.6.0
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
exportCATALINA_HOME=/usr/home/remote/apache-tomcat-6.0
exportCATALINA_BASE=/usr/home/remote/apache-tomcat-6.0
exportPATH=$JAVA_HOME/bin:$PATH
exportTOMCAT_HOME=/usr/home/remote/apache-tomcat-6.0
(b-3)将按照基于Nutch的垂直搜索引擎开发得到的运行文件保存到用户文件夹下,完成所述运行文件的自动运行脚本。
脚本startnutch.sh的内容如下:
#!/bin/bash
#SHELL=/bin/bash
exportJAVA_HOME=/usr/local/diablo-jdk1.6.0
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
exportCATALINA_HOME=/usr/home/remote/apache-tomcat-6.0
exportCATALINA_BASE=/usr/home/remote/apache-tomcat-6.0
exportPATH=$JAVA_HOME/bin:$PATH
exportTOMCAT_HOME=/usr/home/remote/apache-tomcat-6.0
cd/usr/home/remote/nutch-JE分词
bashbin/nutchcrawlweburls.txt-dirweburls-1-depth5-topN3000-threads3>&crawl.log
脚本starttomcat.sh的内容如下:
SHELL=/bin/bash
exportJAVA_HOME=/usr/local/diablo-jdk1.6.0
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
exportCATALINA_HOME=/usr/home/remote/apache-tomcat-6.0
exportCATALINA_BASE=/usr/home/remote/apache-tomcat-6.0
exportPATH=$JAVA_HOME/bin:$PATH
exportTOMCAT_HOME=/usr/home/remote/apache-tomcat-6.0
/usr/home/remote/apache-tomcat-6.0/bin/startup.sh
脚本shutdowntomcat.sh的内容如下:
SHELL=/bin/bash
exportJAVA_HOME=/usr/local/diablo-jdk1.6.0
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
exportCATALINA_HOME=/usr/home/remote/apache-tomcat-6.0
exportCATALINA_BASE=/usr/home/remote/apache-tomcat-6.0
exportPATH=$JAVA_HOME/bin:$PATH
exportTOMCAT_HOME=/usr/home/remote/apache-tomcat-6.0
/usr/home/remote/apache-tomcat-6.0/bin/shutdown.sh
在/etc/crontab中增加如下内容:
3023**7root/usr/home/remote/startnutch.sh
3023**4root/usr/home/remote/startnutch.sh
3023**1root/usr/home/remote/startnutchnews.sh
3023**2root/usr/home/remote/startnutchjob.sh
3023**3root/usr/home/remote/startnutchkejian.sh
3023**6root/usr/home/remote/startnutchkejian.sh
3023**5root/usr/home/remote/startnutchxueshu.sh
3010**7root/usr/home/remote/startnutchhebust.sh
2023***root/usr/home/remote/starttomcat.sh
1723***root/usr/home/remote/shutdowntomcat.sh
(b-4)将按照基于Nutch的垂直搜索引擎开发得到的web工程保存到tomcat中的webapps下。
以上所述实施方式仅为本发明的优选实施例,而并非本发明可行实施的穷举。对于本领域一般技术人员而言,在不背离本发明原理和精神的前提下对其所作出的任何显而易见的改动,都应当被认为包含在本发明的权利要求保护范围之内。
Claims (5)
1.一种基于Nutch的垂直搜索引擎,其特征在于其包括Nutch模块、预处理模块和聚类模块;所述Nutch模块用于从网络上搜集网页、建立所述网页的反向索引、利用所述反向索引搜索用户查找的关键词并向用户反馈检索结果;所述预处理模块用于文本的中文分词;所述聚类模块用于对Nutch模块的检索结果的文本聚类;所述Nutch模块分别与预处理模块和聚类模块双向通信。
2.根据权利要求1所述的一种基于Nutch的垂直搜索引擎,其特征在于所述Nutch模块包括爬虫子模块和检索子模块;所述爬虫子模块用于从网络上采集网页数据并建立所述网页的反向索引;所述检索子模块利用所述反向索引对爬虫子模块爬取到本地的网页数据进行关键词检索并将检索结果反馈用户。
3.根据权利要求1所述的一种基于Nutch的垂直搜索引擎,其特征在于所述预处理模块采用JE分词算法对Nutch模块采集到的网页文本进行中文分词。
4.根据权利要求1所述的一种基于Nutch的垂直搜索引擎,其特征在于所述聚类模块为采用lingo聚类算法的carrot2开源搜索结果分类引擎。
5.根据权利要求1-4任意一项所述的一种基于Nutch的垂直搜索引擎的搭建方法,其特征在于步骤如下:
(a)系统搭建
安装Nutch,配置Nutch,编译Nutch;
(b)服务器端软件配置,包括以下子步骤:
(b-1)在服务器上安装Unix操作系统;
(b-2)在用户文件夹下保存Unix版本的JDK和tomcat,完成环境变量设置;
(b-3)将按照权利要求1-4任意一项所述垂直搜索引擎开发得到的运行文件保存到用户文件夹下,完成所述运行文件的自动运行脚本;
(b-4)将按照权利要求1-4任意一项所述垂直搜索引擎开发得到的web工程保存到tomcat中的webapps下。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510395982.3A CN105045854A (zh) | 2015-07-07 | 2015-07-07 | 一种基于Nutch的垂直搜索引擎及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510395982.3A CN105045854A (zh) | 2015-07-07 | 2015-07-07 | 一种基于Nutch的垂直搜索引擎及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105045854A true CN105045854A (zh) | 2015-11-11 |
Family
ID=54452401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510395982.3A Pending CN105045854A (zh) | 2015-07-07 | 2015-07-07 | 一种基于Nutch的垂直搜索引擎及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105045854A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6714934B1 (en) * | 2001-07-31 | 2004-03-30 | Logika Corporation | Method and system for creating vertical search engines |
CN101114294A (zh) * | 2007-08-22 | 2008-01-30 | 杭州经合易智控股有限公司 | 自助式智能垂直搜索方法 |
CN101901247A (zh) * | 2010-03-29 | 2010-12-01 | 北京师范大学 | 一种领域本体约束的垂直搜索引擎方法及系统 |
CN104050003A (zh) * | 2014-06-27 | 2014-09-17 | 浪潮集团有限公司 | 一种采用shell脚本启动Nutch采集系统的方法 |
CN104516982A (zh) * | 2015-01-06 | 2015-04-15 | 南通大学 | 一种基于Nutch的Web信息提取方法和系统 |
-
2015
- 2015-07-07 CN CN201510395982.3A patent/CN105045854A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6714934B1 (en) * | 2001-07-31 | 2004-03-30 | Logika Corporation | Method and system for creating vertical search engines |
CN101114294A (zh) * | 2007-08-22 | 2008-01-30 | 杭州经合易智控股有限公司 | 自助式智能垂直搜索方法 |
CN101901247A (zh) * | 2010-03-29 | 2010-12-01 | 北京师范大学 | 一种领域本体约束的垂直搜索引擎方法及系统 |
CN104050003A (zh) * | 2014-06-27 | 2014-09-17 | 浪潮集团有限公司 | 一种采用shell脚本启动Nutch采集系统的方法 |
CN104516982A (zh) * | 2015-01-06 | 2015-04-15 | 南通大学 | 一种基于Nutch的Web信息提取方法和系统 |
Non-Patent Citations (1)
Title |
---|
陶秋红: "中文垂直搜索技术的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑(月刊)》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10394925B2 (en) | Automating web tasks based on web browsing histories and user actions | |
US7899829B1 (en) | Intelligent bookmarks and information management system based on same | |
CN101388011B (zh) | 一种向用户词库中记录信息的方法和装置 | |
US8533199B2 (en) | Intelligent bookmarks and information management system based on the same | |
US8538949B2 (en) | Interactive web crawler | |
CN104715064B (zh) | 一种实现在网页上标注关键词的方法和服务器 | |
US11263062B2 (en) | API mashup exploration and recommendation | |
US20110016104A1 (en) | Centralized web-based system for automatically executing search engine optimization principles for one, or more website(s) | |
CN103744853A (zh) | 提供搜索引擎网页快照信息的方法及装置 | |
CN104516982A (zh) | 一种基于Nutch的Web信息提取方法和系统 | |
CN109033403B (zh) | 用于搜索区块链数据的方法、装置及存储介质 | |
US20120016857A1 (en) | System and method for providing search engine optimization analysis | |
KR20090055584A (ko) | 지속 저장 포탈 | |
Hrabovskyi et al. | Development of a Technology for Automation of Work with Sources of Information on the Internet | |
CN102768683B (zh) | 一种图片信息的搜索方法及搜索装置 | |
CN105468737A (zh) | 一种网络服务大数据分析方法、云计算平台及挖掘系统 | |
US10810181B2 (en) | Refining structured data indexes | |
Gheorghe et al. | Modern techniques of web scraping for data scientists | |
US8909632B2 (en) | System and method for maintaining persistent links to information on the Internet | |
CN112417248B (zh) | 寻址关键词的推荐方法、装置、模型、设备和存储介质 | |
CN103838865A (zh) | 用于挖掘时效性种子页的方法及装置 | |
CN105045854A (zh) | 一种基于Nutch的垂直搜索引擎及方法 | |
CN103377207B (zh) | 基于脚本引擎的微博用户关系采集方法 | |
CN103793516A (zh) | 网址图标的获取方法和获取装置 | |
Kumar et al. | Design of focused crawler for information retrieval of Indian origin Academicians |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151111 |
|
RJ01 | Rejection of invention patent application after publication |