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
分享到:
相关推荐
hadoop solr 压力查询测试,查看solr的性能在怎样的环境下能
Solr 索引 测试报告 性能
该资源为本人亲自整理的报告,多线程代码未给出,不是太难我相信你能搞定。
Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr可以独立运行在Jetty、Tomcat等这些Servlet容器中。
solr 学习必备,多看看吧!solr学习笔记,对于初学者不错的!来分享
solrj操作solr 包括crud 查询加入不同条件查询以及查询结果高亮 资料包括测试对象,工具类以及工具类对应的测试类,方便二次开发与使用,10分绝对不亏!
solr学习的关键命令使用说明,包括插入命令与查询命令
solr 学习的入门教程,很实用的学习材料。适合初学者实用
solr测试数据,数据文件
solr学习入门经典教程,赶紧学习吧,从solr的搭建讲起,中文分词器的配置
SolrTest solr测试工程,包含从文件导入索引,和简单自动完成分页查询等。
solr详细学习资料,是对solr的配置,以及对数据库建立索引进行了详细介绍
Solr笔记,Solr笔记,Solr笔记,Solr笔记,Solr笔记,Solr笔记,Solr笔记,Solr笔记,Solr笔记,Solr笔记,
对SOLR的环境搭建和增删改查的例子,希望初学者受用
Solr学习笔记
1. Solr基本介绍 2. Solr的部署 3. Solr和IKAnalyzer 4. Solr 的其他测试 比较好的solr的文章
solr在做检索的时候时常需要得知他的性能参数,此处使用8G内存,双核处理器测试的结果
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包...
以solr8.11.1为基础镜像,使用docker-compose构建含中文分词器的新的镜像 文件夹内含有docker-compose.yml脚本、Dockerfile脚本以及构建镜像所需中文分词器ik-analyzer-8.5.0.jar、所有扩展词和停用词相关的配置文件...