solrJ使用样例

前篇文章我们已经搭建好了一个solr服务器,今天我们看一下solr的client:solrJ,当然,这只是java的。

废话少说,直接上代码:

查询方法:

import java.net.MalformedURLException;

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.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;


public class SolrJSearche {

 private static final String SOLR_URL = "http://localhost:8083/solr14/zjm/";

 public SolrServer getSolrServer() throws MalformedURLException {
  // 远程服务
  return new CommonsHttpSolrServer(SOLR_URL);
  // 本地服务
  // return new EmbeddedSolrServer();
 }
     
     public void SolrJSearch(){  
         try {  
          SolrServer solrServer = getSolrServer();
         } catch (MalformedURLException e) {  
             e.printStackTrace();  
         }  
     }  
       
     public void search(String String) throws MalformedURLException{  
      SolrServer solrServer = getSolrServer();
         SolrQuery query = new SolrQuery();  
         query.setQuery(String); 
         
    //新加条件(and的作用对TERM_VAL的6到8折的限制)
  //query.addFilterQuery("TERM_VAL:{6 TO 8折}");
  //排序用的  
  //query.addSortField( "price", SolrQuery.ORDER.asc );  
   //System.out.println("xxxxxxxxxxxxxx");  
         try {  
             QueryResponse rsp = solrServer.query(query);  
               
             SolrDocumentList docs = rsp.getResults();  
             System.out.println("文档个数:" + docs.getNumFound());  
             System.out.println("查询时间:" + rsp.getQTime());  
             for (SolrDocument doc : docs) {  
                 String name = (String) doc.getFieldValue("name");  
                 String id = (String) doc.getFieldValue("id");  
                 System.out.println(id);  
                 System.out.println(name);  
                 System.out.println(doc.getFieldValue("name_mnecode"));  
             }  
         } catch (SolrServerException e) {  
             e.printStackTrace();  
         }   
     }  
       
     public static void main(String[] args) throws MalformedURLException {  
      SolrJSearche sj = new SolrJSearche(); 
         String Query ="name_mnecode:l*";
         sj.search(Query);  
     }  
 } 

增加索引的方法:

import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.Collection;

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.UpdateRequest;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrInputDocument;

public class AddIndex {
 private static final String SOLR_URL = "http://localhost:8083/solr14/zjm/";

 public SolrServer getSolrServer() throws MalformedURLException {
  // 远程服务
  return new CommonsHttpSolrServer(SOLR_URL);
  // 本地服务
  // return new EmbeddedSolrServer();
 }

 public void commit() throws SolrServerException, IOException {
  SolrServer server = getSolrServer();
  server.deleteByQuery("*:*");// delete everything!
  SolrInputDocument doc1 = new SolrInputDocument();
  doc1.addField("id", "1");
  doc1.addField("name", "张民");
  doc1.addField("name_mnecode", "zhangming zm");
  SolrInputDocument doc2 = new SolrInputDocument();
  doc2.addField("id", "2");
  doc2.addField("name", "刘俊");
  doc2.addField("name_mnecode", "liujun lj");
  SolrInputDocument doc3 = new SolrInputDocument();
  doc3.addField("id", "3");
  doc3.addField("name", "刘俊2");
  doc3.addField("name_mnecode", "liuwun2 lw2");
  Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
  docs.add(doc1);
  docs.add(doc2);
  docs.add(doc3);
  UpdateRequest req = new UpdateRequest();
  req.setAction(UpdateRequest.ACTION.COMMIT, false, false);
  req.add(docs);
  UpdateResponse rsp = req.process(server);
 }
 public static void main(String[] args) throws SolrServerException, IOException {  
  addtest ui = new addtest(); 
  ui.commit();
        System.out.println("xxxxx");
    }  
}

注:这个例子中使用了3个字段:id,name,name_mnecode,这三个字段必须在solr的配置文件中schem.xml增加

另外solrJ所依赖的文件,添加到pom.xml中即可

<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-simple</artifactId>
   <version>1.5.6</version>
  </dependency>
  <dependency>
   <groupId>org.apache.solr</groupId>
   <artifactId>solr-solrj</artifactId>
   <version>1.4.0</version>
  </dependency>
  <dependency>
   <groupId>commons-codec</groupId>
   <artifactId>commons-codec</artifactId>
   <version>1.3</version>
  </dependency>
  <dependency>
   <groupId>commons-httpclient</groupId>
   <artifactId>commons-httpclient</artifactId>
   <version>3.1</version>
  </dependency>
  <dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>1.4</version>
  </dependency>
  <dependency>
   <groupId>org.apache.geronimo.specs</groupId>
   <artifactId>geronimo-stax-api_1.0_spec</artifactId>
   <version>1.0.1</version>
  </dependency>
  <dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>jcl-over-slf4j</artifactId>
   <version>1.5.5</version>
  </dependency>
  <dependency>
   <groupId>org.codehaus.woodstox</groupId>
   <artifactId>wstx-asl</artifactId>
   <version>3.2.7</version>
  </dependency>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值