91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在java中使用solr

發布時間:2020-11-25 15:48:08 來源:億速云 閱讀:141 作者:Leah 欄目:編程語言

這篇文章給大家介紹怎么在java中使用solr,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

SolrJ是操作Solr的Java客戶端,它提供了增加、修改、刪除、查詢Solr索引的JAVA接口。SolrJ針對 Solr提供了Rest 的HTTP接口進行了封裝, SolrJ底層是通過使用httpClient中的方法來完成Solr的操作。

jar包的引用(maven pom.xml):

 <dependency>
      <groupId>org.apache.solr</groupId>
      <artifactId>solr-solrj</artifactId>
      <version>5.3.1</version>
</dependency>
<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
</dependency>
<dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.7</version>
</dependency>
<dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.1.3</version>
</dependency>

java代碼:

package entity;

import java.io.IOException;
import java.util.List;

import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;


public class SolrJTest {
   //指定solr服務器的地址 
   private final static String SOLR_URL = "http://localhost:8080/solr/"; 

   /**
   * 創建SolrServer對象
   * 
   * 該對象有兩個可以使用,都是線程安全的 
   * 1、CommonsHttpSolrServer:啟動web服務器使用的,通過http請求的 
   * 2、 EmbeddedSolrServer:內嵌式的,導入solr的jar包就可以使用了 
   * 3、solr 4.0之后好像添加了不少東西,其中CommonsHttpSolrServer這個類改名為HttpSolrClient
   * 
   * @return
   */
   public HttpSolrClient createSolrServer(){
     HttpSolrClient solr = null;
     solr = new HttpSolrClient(SOLR_URL);
     return solr;
   }


   /**
   * 往索引庫添加文檔
   * @throws IOException 
   * @throws SolrServerException 
   */
   public void addDoc() throws SolrServerException, IOException{
    //構造一篇文檔 
     SolrInputDocument document = new SolrInputDocument(); 
     //往doc中添加字段,在客戶端這邊添加的字段必須在服務端中有過定義 
     document.addField("id", "8"); 
     document.addField("name", "周新星"); 
     document.addField("description", "一個灰常牛逼的軍事家"); 
     //獲得一個solr服務端的請求,去提交 ,選擇具體的某一個solr core
    HttpSolrClient solr = new HttpSolrClient(SOLR_URL + "my_core");
    solr.add(document);
    solr.commit();
    solr.close();
   }


   /** 
   * 根據id從索引庫刪除文檔 
   */
   public void deleteDocumentById() throws Exception { 
     //選擇具體的某一個solr core
     HttpSolrClient server = new HttpSolrClient(SOLR_URL+"my_core"); 
     //刪除文檔 
     server.deleteById("8"); 
     //刪除所有的索引
     //solr.deleteByQuery("*:*");
     //提交修改 
     server.commit(); 
     server.close();
   } 

   /**
   * 查詢
   * @throws Exception 
   */
   public void querySolr() throws Exception{
     HttpSolrClient solrServer = new HttpSolrClient(SOLR_URL+"my_core/"); 
     SolrQuery query = new SolrQuery(); 
     //下面設置solr查詢參數
     //query.set("q", "*:*");// 參數q 查詢所有  
     query.set("q","周星馳");//相關查詢,比如某條數據某個字段含有周、星、馳三個字 將會查詢出來 ,這個作用適用于聯想查詢

     //參數fq, 給query增加過濾查詢條件 
     query.addFilterQuery("id:[0 TO 9]");//id為0-4 

     //給query增加布爾過濾條件 
     //query.addFilterQuery("description:演員"); //description字段中含有“演員”兩字的數據

     //參數df,給query設置默認搜索域 
     query.set("df", "name"); 

     //參數sort,設置返回結果的排序規則 
     query.setSort("id",SolrQuery.ORDER.desc);

     //設置分頁參數 
     query.setStart(0); 
     query.setRows(10);//每一頁多少值 

     //參數hl,設置高亮 
     query.setHighlight(true); 
     //設置高亮的字段 
     query.addHighlightField("name"); 
     //設置高亮的樣式 
     query.setHighlightSimplePre("<font color='red'>"); 
     query.setHighlightSimplePost("</font>"); 

     //獲取查詢結果
     QueryResponse response = solrServer.query(query); 
     //兩種結果獲取:得到文檔集合或者實體對象

     //查詢得到文檔的集合 
     SolrDocumentList solrDocumentList = response.getResults(); 
     System.out.println("通過文檔集合獲取查詢的結果"); 
     System.out.println("查詢結果的總數量:" + solrDocumentList.getNumFound()); 
     //遍歷列表 
     for (SolrDocument doc : solrDocumentList) {
       System.out.println("id:"+doc.get("id")+"  name:"+doc.get("name")+"  description:"+doc.get("description"));
     } 

     //得到實體對象
     List<Person> tmpLists = response.getBeans(Person.class);
     if(tmpLists!=null && tmpLists.size()>0){
       System.out.println("通過文檔集合獲取查詢的結果"); 
       for(Person per:tmpLists){
         System.out.println("id:"+per.getId()+"  name:"+per.getName()+"  description:"+per.getDescription());
       }
     }
   }

   public static void main(String[] args) throws Exception {
     SolrJTest solr = new SolrJTest();
     //solr.createSolrServer();
     solr.addDoc();
     solr.deleteDocumentById();
     solr.querySolr();
  }
}

關于怎么在java中使用solr就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

民丰县| 合作市| 霍邱县| 香港| 桑日县| 乌拉特前旗| 新田县| 汉寿县| 津市市| 屏南县| 永吉县| 东宁县| 莎车县| 伽师县| 津市市| 新昌县| 定结县| 宝清县| 醴陵市| 遵化市| 临澧县| 荆门市| 兴仁县| 岚皋县| 措勤县| 博罗县| 合山市| 平舆县| 绥芬河市| 中山市| 土默特右旗| 松原市| 石柱| 东兰县| 五大连池市| 海晏县| 象山县| 互助| 山丹县| 赣州市| 阿勒泰市|