solrJ使用樣例

前篇文章咱們已經搭建好了一個solr服務器,今天咱們看一下solr的client:solrJ,固然,這只是java的。java

廢話少說,直接上代碼:apache

查詢方法:api

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;ui


public class SolrJSearche {spa

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

 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); 
     } 
 }  code

增長索引的方法:orm

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

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>

相關文章
相關標籤/搜索