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. ASP.NET的内置对象 —— Request 对象

    Request 对象最大的用途在于提交表单信息. (可获取页面间传递的值.客户端的 IP 地址等) 3.2.2 获取页面间传送的值 获取页面传送参数值是 Request 对象最广泛的应用之一. ASP ...

  2. eclipse properties 文件查看和编辑插件 Properties Editor

    Properties Edito官网地址:http://propedit.sourceforge.jp/index_en.html Properties Edito安装地址:http://proped ...

  3. JavaWeb重定向和转发

    if (user != null && passWord.equals(user.getPassWord())) { // 登录成功 // response.sendRedirect( ...

  4. PHP 的 HTTP 认证机制

    PHP 的 HTTP 认证机制仅在 PHP 以 Apache 模块方式运行时才有效,因此该功能不适用于 CGI 版本.在 Apache 模块的 PHP 脚本中,可以用 header()函数来向客户端浏 ...

  5. app.jsNodejs启动测试服务

    'use strict'; var express = require('express');var app = express('');var fs = require('fs'); app.get ...

  6. uart boot log

    CC开始 xmodem 传输. 按 Ctrl+C 取消. 100% 95 KB 4 KB/s 00:00:23 0 Errors U-Boot SPL 2018.01 (Jan 16 2019 - 1 ...

  7. bzoj1083

    题解: 简单最小生成树 代码: #include<bits/stdc++.h> using namespace std; #define y1 ____y1 ; int z[N],f[N] ...

  8. 读书笔记 C# Lookup<TKey,TElement>和ToLookup方法的浅析

    Lookup<TKey,TElement>类型对象和分组是一样的,就好比使用Linq的group关键字后所查询出来的结果,使用foreach的时候,都可以用IGrouping<TKe ...

  9. HTML5之pushstate、popstate操作history,无刷新改变当前url

    一.认识window.history window.history表示window对象的历史记录,是由用户主动产生,并且接受javascript脚本控制的全局对象.window对象通过history对 ...

  10. 1011 A+B 和 C

    给定区间  [-2^31, 2^31] 内的 3 个整数 A.B 和 C,请判断 A+B 是否大于 C. 输入格式: 输入第 1 行给出正整数 T (≤10),是测试用例的个数.随后给出 T 组测试用 ...