首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

solr中plugin的扩充

2012-11-07 
solr中plugin的扩展?1.??? 将solr 源文件解压,并且使用开发工具,如:Eclipse 。新建工程,并将源文件以及相关

solr中plugin的扩展

?

1.??? 将solr 源文件解压,并且使用开发工具,如:Eclipse 。新建工程,并将源文件以及相关的jar 导入。

2.??? 在org.apache.solr.handler 包下(一般在此包下进行扩展),新建java 类。

3.??? 新建的类需要继承RequestHandlerBase 类,并且实现其中的handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) 方法。同时需要覆盖 getVersion() 、 getDescription() 、 getSourceId() 、 getSource() 、 getDocs() 等方法 。

4.??? handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) 方法中,req 表示传入的参数对象,rsp 表示经过处理后得到的需要显示的对象,

5.??? 业务处理根据个人的需要进行编写。

6.??? 在solr 中,常量一般在org.apache.solr.common.params 包下的接口CommonParams 中定义。在本项目中,需要在CommonParams 中添加新的常量,如:

public static final String URI = "uri";//URI 的值表示访问的参数。

7.??? 以上工作实现后,对solr 重新打包。然后加入到Web 项目目录\WEB-INF\lib 中。

8.??? 打开solr 文件夹(对应resin 文件夹下的solr 文件夹),打开conf 文件夹下的solrconfig.xml 文件,在<config> ……</config> 标签中,添加如下内容:

<requestHandler name="/urlinfo" , result); } ///////////// SolrInfoMBeans methods //////////////// ///////////////// 以下覆写父类的方法 /////////////////// @Override public String getVersion() { return "$Revision: 561904 $" ; } @Override public String getDescription() { return "Solr MoreLikeThis" ; } @Override public String getSourceId() { return "$Id: MoreLikeThisHandler.java 561904 2007-08-01 18:43:02Z ryan $" ; } @Override public String getSource() { return "$URL: http://svn.apache.org/repos/asf/lucene/solr/trunk/src/java/org/apache/solr/handler/MoreLikeThisHandler.java $" ; } @Override public URL[] getDocs() { try { return new URL[] { new URL( "http://wiki.apache.org/solr/MoreLikeThis" ) }; } catch (MalformedURLException ex) { return null ; } } }

?????

?? ?b. 在solrconfig.xml 中<config> 标签下添加相应的配置信息:

?

? ?c. 启动服务器,在浏览器中输入地址http://localhost:8080查看结果。

1 楼 chenlb 2009-03-26   你完全可以写一个 Param 的子类, 而不是修改CommonParams, 2 楼 zhouwendong006 2009-03-27   chenlb 写道
你完全可以写一个 Param 的子类, 而不是修改CommonParams,

受教!

热点排行