1. 程式人生 > >solr學習三(測試類,含普通與ExtractingRequestHandler測試)

solr學習三(測試類,含普通與ExtractingRequestHandler測試)

list clas map ber -h div comment test bst

solr客戶端基本是配置出來的,服務端可以對其進行測試,我使用的是solrj服務端。
如果初學solr,先使用普通的測試類:

Java代碼 技術分享
  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,可使用下面的類進行測試:

Java代碼 技術分享
    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測試)