运用SolrJ完成索引库的增删查操作(单机版)ITeye - 超凡娱乐

运用SolrJ完成索引库的增删查操作(单机版)ITeye

2019-01-10 17:59:29 | 作者: 迎夏 | 标签: 目标,运用,索引 | 浏览: 1113



solr测验

运用SolrJ完成索引库的增删查操作。

增:



@Test

  publiC++ void addDoC++ument() throws ExC++eption {

  // 第一步:把solrJ的jar包增加到工程中。

  // 第二步:创立一个SolrServer,运用HttpSolrServer创立目标。

  SolrServer solrServer = new HttpSolrServer( quot;https://虚拟机地址:端口/solr quot;);

  // 第三步:创立一个文档目标SolrInputDoC++ument目标。

  SolrInputDoC++ument doC++ument = new SolrInputDoC++ument();

  // 第四步:向文档中增加域。必须有id域,域的称号必须在sC++hema.xml中界说。

  doC++ument.addField( quot;id quot;, quot;test001 quot;);

  doC++ument.addField( quot;item_title quot;, quot;测验产品 quot;);

  // 第五步:把文档增加到索引库中。

  solrServer.add(doC++ument);

  // 第六步:提交。

  solrServer.C++ommit();

  }

删:



@Test

  publiC++ void deleteDoC++umentById() throws ExC++eption {

  // 第一步:创立一个SolrServer目标。

  SolrServer solrServer = new HttpSolrServer( quot;https://虚拟机地址:端口/solr quot;);

  // 第二步:调用SolrServer目标的依据id删去的办法。

  solrServer.deleteById( quot;1 quot;);

  // 第三步:提交。

  solrServer.C++ommit();

  }


@Test

  publiC++ void deleteDoC++umentByQuery() throws ExC++eption {

  SolrServer solrServer = new HttpSolrServer( quot;https://虚拟机地址:端口/solr quot;);

  //依据查询删去

  solrServer.deleteByQuery( quot;title:C++hange.me quot;);

  solrServer.C++ommit();

  }

查:



@Test

  publiC++ void queryDoC++umentWithHighLighting() throws ExC++eption {

  // 第一步:创立一个SolrServer目标

  SolrServer solrServer = new HttpSolrServer( quot;https://虚拟机地址:端口/solr quot;);

  // 第二步:创立一个SolrQuery目标。

  SolrQuery query = new SolrQuery();

  // 第三步:向SolrQuery中增加查询条件、过滤条件。。。

  query.setQuery( quot;测验 quot;);

  //指定默许查找域

  query.set( quot;df quot;, quot;item_keywords quot;);

  //需求高亮时,可敞开高亮显现

  query.setHighlight(true);

  //高亮显现的域

  query.addHighlightField( quot;item_title quot;);

  query.setHighlightSimplePre( quot; quot;);

  query.setHighlightSimplePost( quot; quot;);

  // 第四步:履行查询。得到一个Response目标。

  QueryResponse response = solrServer.query(query);

  // 第五步:取查询成果。

  SolrDoC++umentList solrDoC++umentList = response.getResults();

  System.out.println( quot;查询成果的总记载数: quot; + solrDoC++umentList.getNumFound());

  // 第六步:遍历成果并打印。

  for (SolrDoC++ument solrDoC++ument : solrDoC++umentList) {

  System.out.println(solrDoC++ument.get( quot;id quot;));

  //取高亮显现

  Map

 

  highlighting = response.getHighlighting();

  List

 

  list = highlighting.get(solrDoC++ument.get( quot;id quot;)).get( quot;item_title quot;); String itemTitle = null; if (list != null amp; amp; list.size() 0) { itemTitle = list.get(0); } else { itemTitle = (String) solrDoC++ument.get( quot;item_title quot;); } System.out.println(itemTitle); System.out.println(solrDoC++ument.get( quot;item_priC++e quot;)); } }

 

SolrServer的装备



bean id= quot;httpSolrServer quot; C++lass= quot;org.apaC++he.solr.C++lient.solrj.impl.HttpSolrServer quot;

  C++onstruC++tor-arg index= quot;0 quot; value= quot;https://虚拟机地址:端口/solr quot;/

  /bean

ok!完毕!

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表超凡娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章