文档章节

nutch与起点R3集成之笔记(一)

 夜游神
发布于 2011/07/21 18:32
字数 1422
阅读 2012
收藏 9

     百度、google帮我们找Internet的信息,但对于一个行业内部网(intranet)来说,百度、google就无法帮忙了。并且,对一个行业来说,更多的信息都是放在行业内部网上,并且采用网页、office文档、图片、视频、音频等格式存放。如何方便,快捷,安全地获取行业内部的信息内容,建立一个行业内部网的搜索引擎就显得尤为重要。

       佛山起点软件(http://www.rivues.com)推出了起点R3软件,是一个开箱即用的企业级搜索引擎产品,并且已开源,下载地址http://sourceforge.net/projects/rivues/files/,最新版本是5.3,安装后,试了一下,非常不错,很快可以建一个桌面搜索(对本地文件建一个搜索引擎),但没有看到对网站内容采集界面。

       nutch是apache项目的一个开源软件,最新版本是1.3,是一个强大的网页、索引工具,1.3版本好像只对solr建立索引,去掉了lucene索引(bin/nutch index 命令不能使用)。solr也是apache项目的一个开源软件,主要是基于lucene的一个索引工具,但搜索结果返回的是xml、json等格式,需要用户开发html展示模块。

      其实,起点R3软件也是基于solr建立的索引,有非常完善展示界面。笔者通过对起点R3源码进行分析后,实现了用nutch来采集网站信息,用起点R3来实现建立索引,并提供用户搜索界面。先将其过程写出来,供大家参考。

     一、起点R3软件的安装与配置

      1.从http://sourceforge.net/projects/rivues/files/下载起点R3 5.3版本qidian_r3_fulltext_search_5.3_without_jdk.zip,并展开到一个目录,如d:\r3目录。

      2.如果没有没有jdk1.6,从http://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe下载jdk1.6版本  ,安装后,并在windows的path环境变量中加上jdk的bin路径。

      3.打开d:\r3\bin文件夹,点击startup.bat启动r3。在浏览器中键入http://127.0.0.1:880/,若能打开r3搜索页面,说明R3安装与配置成功。

     二、在R3中添加nutch对应的索引字段

      要把nutch采集的网页信息索引到起点R3的索引文件中,必须知道nutch用index对应的索引字段,并且要在起点R3的索引结构中加入对应的索引字段。

       1.从http://www.apache.org/dist//nutch/apache-nutch-1.3-bin.zip下载nutch-1.3,展开该文件后,打开conf目录下的schema.xml文件。其中涉及fields内容如下:

<fields>
        <field name="id" type="string" stored="true" indexed="true"/>

        <!-- core fields -->
        <field name="segment" type="string" stored="true" indexed="false"/>
        <field name="digest" type="string" stored="true" indexed="false"/>
        <field name="boost" type="float" stored="true" indexed="false"/>

        <!-- fields for index-basic plugin -->
        <field name="host" type="url" stored="false" indexed="true"/>
        <field name="site" type="string" stored="false" indexed="true"/>
        <field name="url" type="url" stored="true" indexed="true"
            required="true"/>
        <field name="content" type="text" stored="false" indexed="true"/>
        <field name="title" type="text" stored="true" indexed="true"/>
        <field name="cache" type="string" stored="true" indexed="false"/>
        <field name="tstamp" type="long" stored="true" indexed="false"/>

        <!-- fields for index-anchor plugin -->
        <field name="anchor" type="string" stored="true" indexed="true"
            multiValued="true"/>

        <!-- fields for index-more plugin -->
        <field name="type" type="string" stored="true" indexed="true"
            multiValued="true"/>
        <field name="contentLength" type="long" stored="true"
            indexed="false"/>
        <field name="lastModified" type="long" stored="true"
            indexed="false"/>
        <field name="date" type="string" stored="true" indexed="true"/>

        <!-- fields for languageidentifier plugin -->
        <field name="lang" type="string" stored="true" indexed="true"/>

        <!-- fields for subcollection plugin -->
        <field name="subcollection" type="string" stored="true"
            indexed="true"/>

        <!-- fields for feed plugin -->
        <field name="author" type="string" stored="true" indexed="true"/>
        <field name="tag" type="string" stored="true" indexed="true"/>
        <field name="feed" type="string" stored="true" indexed="true"/>
        <field name="publishedDate" type="string" stored="true"
            indexed="true"/>
        <field name="updatedDate" type="string" stored="true"
            indexed="true"/>
    </fields>
    <uniqueKey>id</uniqueKey>
    <defaultSearchField>content</defaultSearchField>
    <solrQueryParser defaultOperator="OR"/>

 

     其中idsegmentdigestboost为核心字段 hostsiteurlcontenttitlecachetstampindex-basic要用到的索引字段,anchorindex-anchor要用到的索引字段, typecontentLengthlastModifieddateindex-more要用到的索引字段。所以必须在R3中的建立对应的字段。

     分析R3源码发现,R3内置了solr,但对索引字段像solr那样不是存放在conf的schema.xml文件中,估计是为了用户管理索引字段方便,将索引字段定义的结果存放在一个derby的数据库中,derby也是apache项目的开源软件。

     进入http://127.0.0.1:880/的界面后,点击login,用admin用户登陆,点击“索引字段”图标,进入索引字段管理界面,在索引字段中加入下表中的 6-19字段。

 

序号	中文别称	名称	数据类型	存储	索引	多值	统计字段	排序字段	复制到字段
1	标题	title	text	true	true	true	true	true	
2	内容	text	text	true	true	true	false	false	
3	附件数	files	tint	true	true	true	false	true	
4	文档类型	contentType	string	true	true	true	true	false	
5	文件目录	parent	string	false	true	true	true	false	
6	内容	content	text	true	true	true	true	true	text
7	标识	url	text	true	true	true	false	true	parent
8	主机名	host	string	true	true	false	false	true	
9	缓存	cache	string	true	true	true	false	false	
10	邮戳	tstamp	tdate	true	true	false	false	false	
11	锚	anchor	text	true	true	true	false	true	
12	内容长	contentLength	string	true	true	false	false	false	
13	时间	lastModified	tdate	true	true	false	false	true	
14	站点	site	string	true	true	false	false	false	
15	段	segment	string	true	true	false	false	false	
16	digest	digest	string	true	true	false	false	false	
17	boost	boost	float	true	true	false	false	true	
18	类型	type	string	true	true	true	true	false	
19	日期	date	tdate	true	true	false	false	false

      其中将content、url分别设置复制为text、parent字段。需要注意的是添加索引字段数据类型、多值属性不能错,如anchor、type的多值属性为true,如果定义错了,在从nutch中索引到R3时会不成功。

(未完待续)

© 著作权归作者所有

粉丝 12
博文 14
码字总数 8786
作品 0
武汉
私信 提问
加载中

评论(1)

萨比尔江
萨比尔江
Nutch 来怎么搜索 图片呢?
如果您以前研究过,希望指导一下,谢谢~!~1
nutch与起点R3集成之笔记(三)

四、抓取网页,建立solr索引 在抓取网页前,要保证起点R3处在运行状态。即 在浏览器中键入 http://127.0.0.1:880/ 后,会出现如下窗口: 在linux或cygwin中运行nutch抓取网页命令为 :bin/n...

夜游神
2011/07/25
0
8
nutch与起点R3集成之笔记(二)

在nutch与起点R3集成之笔记(一)中介绍了在起点R3中添加nutch要用到的索引字段,上述字段建好后,就可以通过nutch抓取一个或多个网站内容,并通过 bin/nutch solrindex 送到起点R3索引库中。...

夜游神
2011/07/25
0
1
nutch与起点R3集成之笔记(四)

通过“nutch与起点R3集成之笔记(一、二、三)”中的步骤,我们可以建立起一个行业内部网的搜索引擎,但搜索引擎一个最重要的功能,就是必须能搜索到网络中最新的内容。这就要求nutch能及时采...

夜游神
2011/08/04
0
2
《Nutch笔记》Nutch-2.2+MySQL集成

一、MySQL配置 1、my.ini配置 找到[mysqld]在下面添加skip-grant-tables和character-set-server=utf8 找到[mysql]、[client]在下面添加default-character-set=utf8 重启mysql服务 (注:)如...

燃點
2014/04/08
0
10
《Nutch笔记》Nutch-1.7+solr-4.7集成

一、下载安装nutch 下载地址 http://apache.fayea.com/apache-mirror/nutch/1.7/apache-nutch-1.7-bin.tar.gz 安装 [root@centos data]# cd /data/[root@centos data]# mkdir nutch[root@ce......

燃點
2014/03/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

火焰图(flame graph)是性能分析利器

Perf命令 Perf 命令(performance的简写)是 Linux 系统原生提供的性能分析工具,返回 CPU 正在执行的函数名以及调用栈(stack)。 通常,它的执行频率是 99Hz(每秒99次),如果99次都返回同一个...

呼呼南风
6分钟前
0
0
 好程序员大数据知识点精讲 大数据之Linux

好程序员大数据知识点精讲 大数据之Linux -Linux是什么? Linux是一套作业系统,不是应用程序Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。 Shell——命令行解...

好程序员IT
10分钟前
0
0
mysql 多行结合

select a1.email as email ,a1.bg ,IFNULL(a1.bg, a2.bg) from ( select * from test01 where sdate = '2019-09-11' ) a1 LEFT join (select * from test01 where sdate = '2019-09-10') a2 ......

昏鸦
12分钟前
0
0
Netflix Eureka 续约 & 更新注册表信息

Eureka Client 要定期的向 Eureka Server 发送心跳请求以保持续约的状态。 也需要定期的从 Eureka Server 获取服务注册表数据,并将服务注册表数据缓存在客户端实例内。 Eureka Client 续约 ...

BryceLoski
15分钟前
11
0
IT兄弟连 Java语法教程 Java开发环境 JVM、JRE、JDK

要想开发Java程序,就需要知道什么是JVM、JRE以及JDK。JVM是运行Java程序的核心,JRE是支持Java程序运行的环境,而JDK是Java开发的核心,下面我们分别具体介绍它们以及它们之间的关系。 1.J...

老码农的一亩三分地
24分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部