solr学习三(测试类,含普通与ExtractingRequestHandler测试)
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);
- }
- }
solr学习三(测试类,含普通与ExtractingRequestHandler测试)的更多相关文章
- Junit核心——测试类(TestCase)、测试集(TestSuite)、测试运行器(TestRunner)
首先,把这三个定义简单的说明一下: 1.测试类(TestCase):一个包含一个或是多个测试的类,在Junit中就是指的是包含那些带有@Test注解的方法的类,同一样也被称作“测试用例”; 2.测试集 ...
- python调用HTMLTestRunner+unittest实现一次执行多个测试类,并生成与每个测试类对应的测试报告,具体看代码,附上整个project代码
python自动化框架雏形,根据自己需要封装:ui自动化,接口自动化均可适用,python版本为python3.x,不要问我为什么不用python2.x,附上整个project代码:http://fi ...
- C++学习三 模板类出错总结(Missing template arguments before 'L')
一.模板类的说明 模板类有一个好处是可以放宽你输入的数据类型. 比如有这样的一个函数: int add(int x, int y) { return x+y; } 这个函数对于int类型的x,y才适合 ...
- XCode中的单元测试:编写测试类和方法(内容意译自苹果官方文档)
当你在工程中通过测试导航栏添加了一个测试target之后, xcode会在测试导航栏中显示该target所属的测试类和方法. 这一章演示了怎么创建测试类,以及如何编写测试方法. 测试targets, ...
- 多个测试类 只使用同一个浏览器,同一个driver对象, 或者同一个页面的对象
如果是:多个测试类 只使用同一个浏览器,同一个driver对象, 或者同一个页面的对象,只需要:1. 创建一个基本的测试类(BaseTest),具有一个公共静态的driver属性, public st ...
- Dubbo入门到精通学习笔记(十五):Redis集群的安装(Redis3+CentOS)、Redis集群的高可用测试(含Jedis客户端的使用)、Redis集群的扩展测试
文章目录 Redis集群的安装(Redis3+CentOS) 参考文档 Redis 集群介绍.特性.规范等(可看提供的参考文档+视频解说) Redis 集群的安装(Redis3.0.3 + CentO ...
- JUit——(三)JUnit核心对象(测试、测试类、Suit和Runner)
JUnit的核心对象:测试.测试类.测试集(Suite).测试运行器 1. 测试: @Test注释的.公共的.不带有任何参数.并且返回void类型的方法 2. 测试类: 公共的,包含对应类的测试方法的 ...
- Java开发学习(三十二)----Maven多环境配置切换与跳过测试的三种方式
一.多环境开发 我们平常都是在自己的开发环境进行开发, 当开发完成后,需要把开发的功能部署到测试环境供测试人员进行测试使用, 等测试人员测试通过后,我们会将项目部署到生成环境上线使用. 这个时候就有一 ...
- JAVA基础学习之路(三)类定义及构造方法
类的定义及使用 一,类的定义 class Book {//定义一个类 int price;//定义一个属性 int num; public static int getMonney(int price ...
随机推荐
- PHP函数总结 (六)
<?php /** * 递归函数(自调用函数): * 在函数体内直接或间接的自己调用自己 * 通常有一个条件判断是否需要执行递归,并且在特定条件下终止函数的递归调用动作,把目前流程的主控制权交回 ...
- Spring web flow的意义
为什么要使用Spring web flow呢? 这里需要强调的一点就是,但凡一个技术的出现和流行,必有其适用的环境和存在的意义. Spring web flow加强了中央集权,这个该怎么理解呢?以往我 ...
- 『cs231n』作业3问题1选讲_通过代码理解RNN&图像标注训练
一份不错的作业3资料(含答案) RNN神经元理解 单个RNN神经元行为 括号中表示的是维度 向前传播 def rnn_step_forward(x, prev_h, Wx, Wh, b): " ...
- IDEA编译时出现"cannot resolve symbol"的问题时的解决方法。
IDEA编译时出现cannot resolve symbol的报错时,(老表的问题出现在另一台电脑上,所以现在没办法给大家截图报错时的图,今天是周末没用那台电脑,突然想起来就想把它写下来,抱歉抱歉!! ...
- 基础的shell脚本
#! /bin/sha="hello world"echo "A is " echo $a echo "<br />" ec ...
- CoderForce 141C-Queue (贪心+构造)
题目大意:一个队伍,每个人只记得前面比他高的人的个数x.现在将队伍散开,问能否构造出一支满足条件的队伍,如果能,再给每个人一个满足题意的身高. 题目分析:一个一个排,x越少越先排,如果x比已经排好的人 ...
- 数据库SQL优化(百万级数据库优化方案)
1. 对查询进行优化 要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2. where 子句 要尽量避免在 where 子句中对字段进行 null 值判断.( ...
- java并发编程:线程安全管理类--原子操作类--AtomicStampedReference<V>
1.类 AtomicStampedReference<V> AtomicStampedReference 维护带有整数“标志”的对象引用,可以用原子方式对其进行更新. 实现注意事项.通过创 ...
- Webserivce简单安全验证
最近新接了一个需要调用第三方WebService的项目,看到这个第三方WebService被调用的时候,需要授权用户名和密码,于是自己也想对WebService的安全授权这个方面进行了一下研究,以前调 ...
- [译].Net 4.5 的五项强大新特性
本文原文:Five Great .NET Framework 4.5 Features 译者:冰河魔法师 目录 介绍 特性一:async和await 特性二:Zip压缩 特性三:正则表达式执行超时 特 ...