solr客户端基本是配置出来的,服务端可以对其进行测试,我使用的是solrj服务端。
如果初学solr,先使用普通的测试类:
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
import org.apache.solr.client.solrj.request.UpdateRequest;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrInputDocument;
public class SolrTest {
public static void main(String[] args) throws IOException,
SolrServerException {
String urlString = " http://localhost:8393/keyPlace";
SolrServer server = new CommonsHttpSolrServer(urlString);
testAdd(server);
testQuery(server);
}
static void testAdd(SolrServer server) throws IOException,
SolrServerException {
SolrInputDocument doc1 = new SolrInputDocument();
doc1.addField("id", 456);
doc1.addField("orgId", "33030300310");
doc1.addField("name", "张三");
doc1.addField("key", "1");
doc1.addField("createDate", new Date());
SolrInputDocument doc2 = new SolrInputDocument();
doc2.addField("id", 123);
doc2.addField("orgId", "33030300310");
doc2.addField("name", "李四");
doc2.addField("key", "2");
doc2.addField("createDate", new Date());
Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
docs.add(doc1);
docs.add( doc2 );
server.add(docs);
UpdateRequest req = new UpdateRequest();
req.setAction(AbstractUpdateRequest.ACTION.COMMIT, false, false);
req.add(docs);
req.process(server);
}
static void testQuery(SolrServer server) throws IOException,
SolrServerException {
SolrQuery query = new SolrQuery();
query.setQuery("name:张三");
query.setHighlight(true).setHighlightSnippets(1);
QueryResponse ret = server.query(query);
System.out.println(ret);
}
}
如果服务端配置了ExtractingRequestHandler,可使用下面的类进行测试:
import java.io.File;
import java.io.IOException;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
import org.apache.solr.client.solrj.request.ContentStreamUpdateRequest;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.handler.extraction.ExtractingParams;
public class ExtractTest {
public static void main(String[] args) {
try {
String urlString = "http://localhost:8393/sourcePool/";
SolrServer solr = new CommonsHttpSolrServer(urlString);
String fileName = "c:/slor1.doc";
String solrId = "2";
String resoucePoolid = "2";
indexFilesSolrCell(fileName, solrId , resoucePoolid , solr);
testQuery(solr);
} catch (Exception ex) {
System.out.println(ex.toString());
}
}
/**
* Method to index all types of files into Solr.
* @throws IOException
* @throws SolrServerException
*/
public static void indexFilesSolrCell(String fileName, String solrId , String resoucePoolid , SolrServer solr)
throws IOException, SolrServerException {
ContentStreamUpdateRequest up
= new ContentStreamUpdateRequest("/update/extract");
ModifiableSolrParams p = new ModifiableSolrParams();
p.add(ExtractingParams.LITERALS_PREFIX + "orgids" , "33010033001");
p.add(ExtractingParams.LITERALS_PREFIX + "orgids" , "33010033002");
p.add(ExtractingParams.LITERALS_PREFIX + "orgids" , "33010033003");
up.setParams(p);
up.addFile(new File(fileName));
up.setParam(ExtractingParams.LITERALS_PREFIX + "id", solrId);
up.setParam(ExtractingParams.LITERALS_PREFIX + "resoucepoolid", resoucePoolid);
up.setParam(ExtractingParams.LITERALS_PREFIX + "orgid", "33010033001");
up.setParam(ExtractingParams.LITERALS_PREFIX + "name", "33010033001");
up.setParam(ExtractingParams.LITERALS_PREFIX + "releaseunit", "33010033001");
up.setParam(ExtractingParams.LITERALS_PREFIX + "releasetime", "2011-02-12");
up.setParam(ExtractingParams.UNKNOWN_FIELD_PREFIX, "attr_");
//up.setParam("fmap.content", "filestream");
up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);
solr.request(up);
}
static void testQuery(SolrServer solr) throws IOException, SolrServerException {
String fileStream = "filestream:老婆的老公";
String field = "orgid:33010033001";
QueryResponse rsp = solr.query(new SolrQuery(field));
System.out.println(rsp);
}
}
测试类如果出错,基本都是jar包引入的问题,jar如果引入可参见我的另一篇博客:http://xinyangwjb.iteye.com/blog/1405713
分享到:
相关推荐
1. 在 50x100 并发写入测试中,单节点的磁盘使用和 IO 情况与集群模式下有所不同。 2. 对比单节点和 Solr on HDFS 的并发写入性能,单节点的 CPU 监控和磁盘 IO 数据显示,单节点在写入性能上接近集群模式的两倍。 3...
#### 三、Solr 的安装与配置 - **下载 Solr** - 最新版本为 5.2.1,本教程使用版本 4.10.3。 - 下载地址:[http://archive.apache.org/dist/lucene/solr/](http://archive.apache.org/dist/lucene/solr/) - ...
- **测试目的**:通过对单节点Solr与基于Hadoop分布式文件系统(HDFS)的Solr Cloud集群进行压力测试,分析两者在读写性能上的差异,从而为生产环境中的Solr部署提供参考。 #### 二、测试环境配置 - **单节点Solr**...
Solr 索引 测试报告 性能
本文将深入探讨Solr6工具类的使用方法,包括条件查询、结果高亮,并结合测试对象和测试类进行详细解析。 1. **SolrJ简介** SolrJ提供了一组接口和类,使得开发者能够轻松地创建、发送和解析Solr请求。它通过...
**SOLR学习指南** Apache SOLR是一款开源的企业级全文搜索引擎,它被广泛应用于网站内容检索、电商商品搜索、文档数据库搜索等领域。SOLR以其高效、可扩展性以及丰富的特性和配置选项而受到广大开发者的青睐。在这...
SolrTest是一个针对Apache Solr的测试工程,其主要目的是为了验证和演示Solr的核心...综上所述,SolrTest工程是一个全面的测试平台,涵盖了Solr从数据导入到查询展现的多个关键环节,是学习和验证Solr功能的宝贵资源。
【Solr 学习资料详解】 Solr 是一个基于 Apache Lucene 的全文搜索服务器,它为企业提供了高效、可扩展的搜索解决方案。Solr 不仅提供了丰富的查询语言,还优化了索引和搜索性能,使得在大型网站、电子商务平台等...
#### 三、安装与配置Solr 为了使用 Solr,需要准备以下环境: - **Java 1.5 或更高版本**:Solr 基于 Java 实现,因此需要 Java 运行环境。 - **Ant 1.6.x 或更高版本**:用于构建 Solr 和示例应用。 - **Web ...
#### 三、Solr与Lucene的主要差异 尽管Solr基于Lucene,但它不仅仅是对Lucene的简单封装。Solr引入了诸多额外的功能和服务,如Web服务接口、多语言支持、更复杂的数据类型处理、高可用性及性能优化策略。这些特性使...
solr 学习笔记主要涵盖了 Solr 的基本安装与配置,以及 Solr 服务器复制的配置,这些都是初学者需要掌握的基础知识。 Solr 是一款基于 Lucene 的全文搜索引擎,广泛应用于大数据检索和文本分析。在安装 Solr 时,...
### Solr 学习笔记:关键命令使用说明 Solr 是一个开源的、高性能的全文检索引擎,基于 Java 开发,常被用于大型网站的搜索系统。本文将围绕给定内容中的关键命令进行详细的解析,主要包括 Solr 的启动、集群管理、...
solr测试数据,数据文件
solr学习入门经典教程,赶紧学习吧,从solr的搭建讲起,中文分词器的配置
三、Solr配置 Solr的核心配置文件包括`solrconfig.xml`和`schema.xml`,它们决定了Solr的行为和索引结构。 1. `solrconfig.xml` - `dataDir`:定义索引存储位置,默认为`solr/data`,可通过配置指定其他路径,如`...
Solr学习笔记(三)——Solr客户端开发实例 在本文中,我们将深入探讨Solr客户端的开发,以便更好地理解如何在实际项目中利用Solr的强大功能。Solr是一款开源的全文搜索引擎,提供了高效的搜索和索引功能。通过Solr...
#### 三、配置 Solr 与 Tomcat 的整合 ##### 3.1 配置 solr.xml - 在 Tomcat 的配置目录 `conf/Catalina/localhost` 下创建一个名为 `solr.xml` 的文件。 - 编辑该文件,添加以下内容: ```xml ...
【Solr学习总结配置方法】 Solr是一款基于Apache Lucene的全文检索服务器,它提供了分布式、可扩展且高度可用的搜索和分析能力。Solr的主要特点是简化了索引创建和查询服务,使得开发者只需编写少量代码即可实现...
标题“solr与tomcat整合”涉及的是将Apache Solr搜索引擎集成到Apache Tomcat应用服务器的过程。Solr是一款基于Lucene的开源搜索平台,而Tomcat是Java Servlet和JavaServer Pages的容器。整合这两者可以方便地在Web...
4. **关键类与接口** - `SolrCore`: 代表Solr的单一索引实例,包含了索引、查询和其他核心功能。 - `SolrRequestHandler`: 处理Solr请求的接口,用于定义不同的查询和更新处理逻辑。 - `...