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" class="solr.URItoWordsHandler">
</requestHandler>
其中name 属性决定了访问的路径,class 属性决定了处理类。
9. 打开IE 浏览器,输入“http://localhost:8081/index/urlinfo?url= ?wt= ?”,其中“localhost:8081/index/ ”表示该WEB 应用程序的访问地址,“urlinfo ”对应第8 条中的<requestHandler> 标签中的name 属性的值。url 对应传入的查询网页地址(对应第6 条中添加的常量的值(uri ))。wt 表示要输出的格式,值一般为:xml 和json ,表示输出的格式为xml 格式或者json 格式。
10. 以下通过一个例子具体说明:
a. 在合适的包下编写所需要的java 类,本例中类名为 URItoWordsHandler ,该类继承 RequestHandlerBase 类。
/**
* 导入所需要的包
*/
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.SimpleOrderedMap;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.request.SolrQueryResponse;
/**
public class URItoWordsHandler extends RequestHandlerBase {
public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp)
throws Exception {
/**
* 获取传递的参数集合,并且进行相应的业务处理
*/
SolrParams params = req.getParams();
/**
* 从参数集合中得到想要的参数
*/
String uri = params.get(CommonParams. URI );
/**
* 以下进行合适的业务处理,具体处理过程省略
*/
…………
/**
* 将业务处理结果添加到 rsp ,并且输出
*/
rsp.add( "result" , 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> 标签下添加相应的配置信息:
<!-- zhouwendong 2009-1-7 START!!! 注释,便于后期修改 -->
<requestHandler name="/urlinfo" class="solr.URItoWordsHandler">
<!-- /urlinfo 表示访问路径 class 表示对应的处理类 -->
<!-- 以下为其他说明,可根据需要修改或删除 -->
<lst name=" 其他说明">
<int name=" 名称"> 参数</int>
</lst>
</requestHandler>
<!-- zhouwendong 2009-1-7 END!!! -->
c. 启动服务器,在浏览器中输入地址http://localhost:8080查看结果。
分享到:
相关推荐
hanlp-solr-plugin-1.1.2-sources,jar包,,,,,,,,
ranger-2.0.0-SNAPSHOT-solr-plugin.tar.gz 结合ranger-admin使用
solr中文分词依赖,非常好用,下载速度块
电商搜索引擎solr的扩展词库,20W+的专业名词,txt文件;
可做为电商搜索引擎solr的扩展词库,20W+专业名词,txt文件可修改后缀名,不定时更新。
php与solr开源数据库的进行数据交互的扩展包,使用时直接导入到文档中即可
solr扩展词库,共100多万条,供大家下载使用,内容很全
solr的linux环境安装软件、扩展词典和停词配置,还有学习和开发文档
少有的solr中文文档,详细说明了SOLR的文件配置,使用。
solr中文分词器
solr-mongo-importer-1.1.0.jar solr-mongo-importer-1.1.0.jar solr-mongo-importer-1.1.0.jar
solr 中文分词
solr中Cache综述 以及部分优化策略
solr中文教程,solr帮助文档,快速搭建solr
支持solr5.5 solr6.0中IK分词需要的资料
solr6.0的中文分词也支持solr5.x,IKAnalyzer.jar和配置文件
solr.warsolr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包...
solr中的mmesg4j中文分词器安装详细步骤文档
Solr5.4的中文分词库,解压拷贝到Solr5.4.0的WEB-INF目录下即可,如非默认数据保存路径,要修改web.xml文件