激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - solr在java中的使用實例代碼

solr在java中的使用實例代碼

2020-11-25 10:53俺就不起網名 Java教程

本篇文章主要介紹了solr在java中的使用實例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

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

 
?
1
 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<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代碼:

 
?
1
 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
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();
  }
}

參考文檔:http://www.doc88.com/p-6763747939865.html

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/u012385190/article/details/53115546

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 极色品影院 | 伊人在线 | 激情视频免费观看 | 真人一级毛片免费 | 亚洲一区在线免费视频 | 国产无遮挡一区二区三区毛片日本 | 国产成人高清在线 | 精品一区二区在线观看 | 国产亚洲欧美日韩在线观看不卡 | 国产亚色 | 日本在线观看高清完整版 | 欧美成人视 | china对白普通话xxxx | 欧美日韩精品一区二区三区不卡 | 中文字幕精品在线观看 | 污视频在线免费播放 | 黄色av.com| 久久久久亚洲精品国产 | 亚洲va久久久噜噜噜久久男同 | 天天鲁在线视频免费观看 | av在线免费网 | 九九精品影院 | chinesehdxxxx无套| 久啪视频| 媚药按摩痉挛w中文字幕 | 黄色电影免费网址 | 一本到免费视频 | 一二区电影 | 黄网站免费入口 | 国产精品一区二区三区在线 | 国产一级免费在线视频 | 91极品在线 | 久久欧美亚洲另类专区91大神 | 国产成人在线免费观看视频 | 欧美一区二区黄色 | 爱视频福利 | www.热| 成年免费视频黄网站在线观看 | 99视频在线观看视频 | 日韩在线激情 | 亚洲一区二区观看播放 |