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查看结果。
分享到:
相关推荐
在 pentaho-solr-plugin-master 压缩包中,可能包含以下内容: - **源代码**:Java 代码实现,用于构建和理解插件的工作原理。 - **文档**:可能包含使用指南、API 文档或者开发者指南,帮助用户和开发者快速上手。 ...
Solr4.9是Apache Solr的一个版本,它是一个基于Lucene的全文搜索服务器,用于构建高效的、可扩展的搜索应用。在这个版本中,Solr提供了丰富的查询功能、高效的索引和搜索性能,以及灵活的数据处理能力。"solr4.9开发...
Solr的灵活性和可扩展性得益于其插件系统,使得用户可以根据需求自定义功能。下面我们将深入探讨Solr的各种插件及其在实际应用中的作用。 1. **查询解析器插件**: 查询解析器是Solr处理用户输入查询的关键组件。...
这通常通过 Solr's Security Plugin 实现,它提供了基于角色的访问控制(RBAC),允许管理员设置不同的权限级别,确保只有授权的用户可以访问和操作 Solr。 5. **配置文件详解**:在压缩包中的 "solr-8.5.2" 文件夹...
11. **安全与权限控制**:Solr可以通过Solr Security Plugin实现用户认证和授权,保护索引数据的安全。 12. **插件扩展**:Solr的灵活性体现在其强大的插件体系,开发者可以根据需求编写自定义查询解析器、请求...
`solr-plugin-init.xml`用于初始化插件,`PluginInfo`类描述了插件的信息。 9. **请求处理**: `RequestHandlers`处理来自客户端的请求,如搜索请求、更新请求等。`org.apache.solr.handler`包下有多种预定义的...
此插件扩展了NodeBB的功能,以利用Apache Solr的安装作为搜索后端。 配置 通过npm安装此插件: npm install nodebb-plugin-solr 在“插件”页面中激活它 重新启动NodeBB 检查插件是否已成功连接到搜索引擎。 如果...
9. **安全性**:Solr 8.10.0可能包含了安全相关的配置和插件,如Solr Security Plugin,用于实现身份验证和授权。 10. **监控和管理**:Solr提供了直观的Web界面(Solr Admin UI),用户可以在这里查看统计信息、...
Solr,全称为Apache Solr,是Apache软件基金会的一个开源项目,主要用来构建高效、可扩展的全文搜索引擎。它基于Java开发,可以处理大量数据,提供高速搜索功能,并且支持多语言,是企业级信息检索服务的重要选择。...
9. **安全与权限**:Solr 8.5.1引入了Solr Security Plugin,用于实现身份验证和授权,保护Solr实例的安全。 10. **社区与资源**:Apache Solr拥有活跃的社区,用户可以在官方论坛、邮件列表和Stack Overflow上寻求...
汉纳拼音Lucene插件(hanlp-lucene-plugin)是一个专为中文处理设计的扩展工具,它将著名的HanLP中文分词库与流行的全文检索框架Lucene进行了集成,旨在提升在Lucene及其衍生产品(如Solr)中的中文处理能力。...
solrconfig.xml 文件中配置了 Solr 的一些基本信息,例如 Plugin 的配置、Request Handler 的配置等。schema.xml 文件中配置了 Solr 的字段信息,例如字段的名称、类型、索引信息等。 在 Solr 中,核心的概念是索引...
在4.3.0版本中,DIH的“extras”部分可能包含了扩展和增强功能,比如支持更多的数据源类型、定制化的数据处理器或者增强的性能优化。这些额外组件对于那些需要处理大量结构化数据并希望将其快速高效地索引到Solr的...
4. **安装插件**:将生成的JAR文件通过Elasticsearch的`bin/plugin`命令安装到ES实例中。 5. **配置设置**:在Elasticsearch的配置文件`elasticsearch.yml`中,添加关于HanLP插件的相关配置,例如设置分词器的类型...
在标题提到的`hanlp jar 包`中,包含了`hanlp-portable-1.3.2.jar`和`hanlp-solr-plugin-1.1.2.jar`以及其源码版本`hanlp-solr-plugin-1.1.2-sources.jar`,这些文件将帮助开发者在Java环境下高效地进行中文文本的...
信息检索-泛化翻译模型该存储库包含本文的Lucene&Solr实现: 概率相关框架中的通用翻译模型Rekabsaz,Lupu,Hanbury,Zuccon-CIKM '16( )执行该存储库允许使用Solr解析器和Lucene查询扩展Lucene&Solr。...
使用过滤后的点击流数据重新排序和扩展Solr查询返回值,从而提供一个简单,灵活的协作过滤框架。 Clickthroughfilter-xxxjar将过滤器作为Solr / Lucene的查询解析器插件运行。 过滤器(来自单独的clicks核心)对...
首先,`hanlp-solr-plugin-1.1.2.jar` 是HanLP与Solr集成的插件,Solr是一个流行的开源搜索引擎,这个插件使得HanLP的分词能力可以无缝集成到Solr中,从而提升搜索的精准度。开发者可以通过这个插件,在Solr中实现对...
该扩展中包含标准显示功能的部分内容以及一些有助于创建这些模板的View Helper。安装为了开发此扩展,请克隆该存储库,并使用composer install通过composer安装依赖项。目的这些扩展旨在提供: 访问TYPO3中的任意...
Solr是一个流行的开源搜索平台,通过这个插件,开发者可以在Solr中直接使用HanLP的自然语言处理功能,如在索引构建或查询过程中进行中文分词,提高检索效果。对于需要构建中文搜索引擎的项目,这个插件尤其重要。 4...