solr客户端基本是配置出来的,服务端可以对其进行测试,我使用的是solrj服务端。 
如果初学solr,先使用普通的测试类:

  1. import java.io.IOException;
  2. import java.util.ArrayList;
  3. import java.util.Collection;
  4. import java.util.Date;
  5. import org.apache.solr.client.solrj.SolrQuery;
  6. import org.apache.solr.client.solrj.SolrServer;
  7. import org.apache.solr.client.solrj.SolrServerException;
  8. import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
  9. import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
  10. import org.apache.solr.client.solrj.request.UpdateRequest;
  11. import org.apache.solr.client.solrj.response.QueryResponse;
  12. import org.apache.solr.common.SolrInputDocument;
  13. public class SolrTest {
  14. public static void main(String[] args) throws IOException,
  15. SolrServerException {
  16. String urlString = " http://localhost:8393/keyPlace";
  17. SolrServer server = new CommonsHttpSolrServer(urlString);
  18. testAdd(server);
  19. testQuery(server);
  20. }
  21. static void testAdd(SolrServer server) throws IOException,
  22. SolrServerException {
  23. SolrInputDocument doc1 = new SolrInputDocument();
  24. doc1.addField("id", 456);
  25. doc1.addField("orgId", "33030300310");
  26. doc1.addField("name", "张三");
  27. doc1.addField("key", "1");
  28. doc1.addField("createDate", new Date());
  29. SolrInputDocument doc2 = new SolrInputDocument();
  30. doc2.addField("id", 123);
  31. doc2.addField("orgId", "33030300310");
  32. doc2.addField("name", "李四");
  33. doc2.addField("key", "2");
  34. doc2.addField("createDate", new Date());
  35. Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
  36. docs.add(doc1);
  37. docs.add( doc2 );
  38. server.add(docs);
  39. UpdateRequest req = new UpdateRequest();
  40. req.setAction(AbstractUpdateRequest.ACTION.COMMIT, false, false);
  41. req.add(docs);
  42. req.process(server);
  43. }
  44. static void testQuery(SolrServer server) throws IOException,
  45. SolrServerException {
  46. SolrQuery query = new SolrQuery();
  47. query.setQuery("name:张三");
  48. query.setHighlight(true).setHighlightSnippets(1);
  49. QueryResponse ret = server.query(query);
  50. System.out.println(ret);
  51. }

如果服务端配置了ExtractingRequestHandler,可使用下面的类进行测试:

    1. import java.io.File;
    2. import java.io.IOException;
    3. import org.apache.solr.client.solrj.SolrServer;
    4. import org.apache.solr.client.solrj.SolrServerException;
    5. import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
    6. import org.apache.solr.client.solrj.response.QueryResponse;
    7. import org.apache.solr.client.solrj.SolrQuery;
    8. import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
    9. import org.apache.solr.client.solrj.request.ContentStreamUpdateRequest;
    10. import org.apache.solr.common.params.ModifiableSolrParams;
    11. import org.apache.solr.handler.extraction.ExtractingParams;
    12. public class ExtractTest {
    13. public static void main(String[] args) {
    14. try {
    15. String urlString = "http://localhost:8393/sourcePool/";
    16. SolrServer solr = new CommonsHttpSolrServer(urlString);
    17. String fileName = "c:/slor1.doc";
    18. String solrId = "2";
    19. String resoucePoolid = "2";
    20. indexFilesSolrCell(fileName, solrId , resoucePoolid , solr);
    21. testQuery(solr);
    22. } catch (Exception ex) {
    23. System.out.println(ex.toString());
    24. }
    25. }
    26. /**
    27. * Method to index all types of files into Solr.
    28. * @throws IOException
    29. * @throws SolrServerException
    30. */
    31. public static void indexFilesSolrCell(String fileName, String solrId , String resoucePoolid , SolrServer solr)
    32. throws IOException, SolrServerException {
    33. ContentStreamUpdateRequest up
    34. = new ContentStreamUpdateRequest("/update/extract");
    35. ModifiableSolrParams p = new ModifiableSolrParams();
    36. p.add(ExtractingParams.LITERALS_PREFIX + "orgids" , "33010033001");
    37. p.add(ExtractingParams.LITERALS_PREFIX + "orgids" , "33010033002");
    38. p.add(ExtractingParams.LITERALS_PREFIX + "orgids" , "33010033003");
    39. up.setParams(p);
    40. up.addFile(new File(fileName));
    41. up.setParam(ExtractingParams.LITERALS_PREFIX + "id", solrId);
    42. up.setParam(ExtractingParams.LITERALS_PREFIX + "resoucepoolid", resoucePoolid);
    43. up.setParam(ExtractingParams.LITERALS_PREFIX + "orgid", "33010033001");
    44. up.setParam(ExtractingParams.LITERALS_PREFIX + "name", "33010033001");
    45. up.setParam(ExtractingParams.LITERALS_PREFIX + "releaseunit", "33010033001");
    46. up.setParam(ExtractingParams.LITERALS_PREFIX + "releasetime", "2011-02-12");
    47. up.setParam(ExtractingParams.UNKNOWN_FIELD_PREFIX, "attr_");
    48. //up.setParam("fmap.content", "filestream");
    49. up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);
    50. solr.request(up);
    51. }
    52. static void testQuery(SolrServer solr)  throws IOException, SolrServerException {
    53. String fileStream = "filestream:老婆的老公";
    54. String field = "orgid:33010033001";
    55. QueryResponse rsp = solr.query(new SolrQuery(field));
    56. System.out.println(rsp);
    57. }
    58. }

solr学习三(测试类,含普通与ExtractingRequestHandler测试)的更多相关文章

  1. Junit核心——测试类(TestCase)、测试集(TestSuite)、测试运行器(TestRunner)

    首先,把这三个定义简单的说明一下: 1.测试类(TestCase):一个包含一个或是多个测试的类,在Junit中就是指的是包含那些带有@Test注解的方法的类,同一样也被称作“测试用例”; 2.测试集 ...

  2. python调用HTMLTestRunner+unittest实现一次执行多个测试类,并生成与每个测试类对应的测试报告,具体看代码,附上整个project代码

    python自动化框架雏形,根据自己需要封装:ui自动化,接口自动化均可适用,python版本为python3.x,不要问我为什么不用python2.x,附上整个project代码:http://fi ...

  3. C++学习三 模板类出错总结(Missing template arguments before 'L')

    一.模板类的说明 模板类有一个好处是可以放宽你输入的数据类型. 比如有这样的一个函数: int add(int x, int y) { return x+y; } 这个函数对于int类型的x,y才适合 ...

  4. XCode中的单元测试:编写测试类和方法(内容意译自苹果官方文档)

    当你在工程中通过测试导航栏添加了一个测试target之后, xcode会在测试导航栏中显示该target所属的测试类和方法. 这一章演示了怎么创建测试类,以及如何编写测试方法. 测试targets, ...

  5. 多个测试类 只使用同一个浏览器,同一个driver对象, 或者同一个页面的对象

    如果是:多个测试类 只使用同一个浏览器,同一个driver对象, 或者同一个页面的对象,只需要:1. 创建一个基本的测试类(BaseTest),具有一个公共静态的driver属性, public st ...

  6. Dubbo入门到精通学习笔记(十五):Redis集群的安装(Redis3+CentOS)、Redis集群的高可用测试(含Jedis客户端的使用)、Redis集群的扩展测试

    文章目录 Redis集群的安装(Redis3+CentOS) 参考文档 Redis 集群介绍.特性.规范等(可看提供的参考文档+视频解说) Redis 集群的安装(Redis3.0.3 + CentO ...

  7. JUit——(三)JUnit核心对象(测试、测试类、Suit和Runner)

    JUnit的核心对象:测试.测试类.测试集(Suite).测试运行器 1. 测试: @Test注释的.公共的.不带有任何参数.并且返回void类型的方法 2. 测试类: 公共的,包含对应类的测试方法的 ...

  8. Java开发学习(三十二)----Maven多环境配置切换与跳过测试的三种方式

    一.多环境开发 我们平常都是在自己的开发环境进行开发, 当开发完成后,需要把开发的功能部署到测试环境供测试人员进行测试使用, 等测试人员测试通过后,我们会将项目部署到生成环境上线使用. 这个时候就有一 ...

  9. JAVA基础学习之路(三)类定义及构造方法

    类的定义及使用 一,类的定义 class Book {//定义一个类 int price;//定义一个属性 int num; public static int getMonney(int price ...

随机推荐

  1. linux使用flock文件锁

    使用linux flock 文件锁实现任务锁定,解决冲突 格式: flock [-sxun][-w #] fd# flock [-sxon][-w #] file [-c] command flock ...

  2. python-day39--mysql基本操作

    1.修改密码: mysqladmin -uroot password 123 2.忘记密码如何修改密码: 1.干掉data目录---> 重新初始化   (不推荐,所有授权信息全部丢失!!!) 2 ...

  3. UVA-10163 Storage Keepers (0-1背包)

    题目大意:有n个仓库,m个应聘者,每人对应一个能力值.一个人可以看多个仓库,一间仓库只能被一个人看.如果一个能力为p的人看k间仓库,那么安全系数为p/k,求出最大的最小安全系数,并且求出在此情况下所有 ...

  4. UVA-10026 Shoemaker's Problem (贪心)

    题目大意:一个鞋匠,有n只鞋要修,修某只鞋的时间ti已知,某只鞋晚修一天要交的罚款fi也已知.现在让找个修鞋顺序使得罚款最少. 题目分析:本来想水一下这道题,没想到真的AC啦.后来又查的题解,找的解释 ...

  5. The working copy needs to be upgraded svn: The working copy at

    错误信息: The working copy needs to be upgradedsvn: The working copy at 'F:\JAVA Project\PAW-VRVEIS-JJ-2 ...

  6. G1收集器

    转载:https://blog.csdn.net/zhou2s_101216/article/details/79202893 http://blog.jobbole.com/109170/ http ...

  7. xrat CC特征

    ["6", 11818669.0, 8326.0, 599.75, 19705.992496873696, 13.882451021258857, 0.07203338938265 ...

  8. JavaScript学习总结(二)——逻辑Not运算符详解

    在JavaScript 中,逻辑NOT运算符与C和Java中的逻辑 NOT 运算符相同,都由感叹号(!)表示.与逻辑 OR 和逻辑 AND 运算符不同的是,逻辑 NOT 运算符返回的一定是 Boole ...

  9. Python gui编程pyQt5安装步骤

    Python gui编程pyQt5安装步骤 =============================== -m PyQt5.uic.pyuic  $FileName$ -o $FileNameWit ...

  10. 跟我一起学习ASP.NET 4.5 MVC4.0(四)

    前几个文章中介绍了一些关于MVC4.0的东东,今天我们来看一下登陆验证,也可以说是权限验证,即AuthorizeAttribute.这个可以使用在控制器Controller上,也可以使用在Action ...