日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Solr_全文检索引擎系统

發布時間:2023/11/27 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Solr_全文检索引擎系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Solr介紹:

Solr 是Apache下的一個頂級開源項目,采用Java開發,它是基于Lucene的全文搜索服務。Solr可以獨立運行在Jetty、Tomcat等這些Servlet容器中。

?

Solr的作用:

solr是一個現成的全文檢索引擎系統, 放入tomcat下可以獨立運行, 對外通過http協議提供全文檢索服務(就是對索引和文檔的增刪改查服務), 在代碼中可以通過solrJ(solr的客戶端的jar包)來調用solr服務。

?

Lucene和solr的區別:

lucene是一個全文檢索引擎工具包, 就是一堆jar包, 它放入tomcat下不能獨立運行, 但是我們可以使用lucene來構建全文檢索引擎系統;

solr底層是用lucene來開發的一個全文檢索引擎系統, 放入tomcat下就可以獨立運行, 對外通過http的形式,提供全文檢索服務(索引和文檔的增刪改查服務)。

?

在Tomcat容器中部署solr工程的步驟:

1、下載solr壓縮包,下載地址:http://archive.apache.org/dist/lucene/solr/(我這里使用的是solr-4.10.3);

2、準備好一個干凈的Tomcat容器,并配置好JDK;

3、找到solr解壓后的目錄,將solr-4.10.3\example\webapps目錄下的solr.war包放進Tomcat容器中運行,直接運行的目的是解壓該war包,解壓好之后關閉Tomcat容器并刪除war包(必須要刪除war包,否則再次運行時就覆蓋了以前配置好的solr服務),開始部署solr服務;

4、找到solr解壓后的目錄,將solr-4.10.3\example\lib\ext目錄下的所有jar包復制到Tomcat容器下的solr項目中的WEB-INF/lib目錄下

5、為solr服務準備家目錄,找打solr解壓后的目錄,將solr-4.10.3\example目錄下的有一個名稱為solr的目錄直接拷貝到硬盤根目錄下,并且命名為solrHome(一般推薦這樣做);

6、開始配置solr服務,找到Tomcat容器中部署的solr項目中的WEB-INF/web.xml文件,進行配置,首先打開<env-entry>標簽,并且將剛剛拷貝好的solr的家目錄的路徑配置進去。

?

  <env-entry><env-entry-name>solr/home</env-entry-name><env-entry-value>G:\solrHome</env-entry-value><env-entry-type>java.lang.String</env-entry-type></env-entry>

?

7、啟動Tomcat容器,并通過http://127.0.0.1:8080/solr地址訪問即可,如果看到以下界面則配置成功。

?

8、 solr服務配置成功之后,就會默認有一個collection1的實例,如果需要的話也可以配置多個,將solrHome目錄下的collection1目錄拷貝多個并將每個目錄下的core.properties配置文件中修改一下即可,記得重啟Tomcat容器。

?

?

通過SolrJ操作并訪問solr服務中的數據:

什么是solrj?

solrj是訪問solr服務的Java客戶端,提供索引和搜索的請求方法。

?

?

創建工程,并引入solrj所需的jar包:

?

需求一:向solr服務中的collection1實例中添加數據?

 1   //向solr服務器中的collection1實例中添加數據
 2     @Test
 3     public void add() throws Exception{
 4         //1、創建與solr服務器的連接
 5         /*
 6          * http://localhost:8080/solr默認連接的是collection1實例
 7          * 如果想連接其他的實例,如collection2、collection3則在連接時必須指定:http://localhost:8080/solr/實例名稱
 8          */
 9         SolrServer server = new HttpSolrServer("http://localhost:8080/solr");
10         
11         //2、創建solr的文檔對象并添加數據
12         SolrInputDocument document = new SolrInputDocument();
13         document.addField("id", "003");
14         document.addField("title", "solr");
15         
16         //3、將文檔對象添加到solr服務器
17         server.add(document);
18         
19         //4、提交
20         server.commit();
21     }

需求二:修改solr服務中collection3實例中的數據?

 1 //修改solr服務器上collection3實例中的數據
 2     @Test
 3     public void update() throws Exception{
 4         //1、連接solr服務器上collection3實例中的數據
 5         SolrServer server = new HttpSolrServer("http://localhost:8080/solr/collection3");
 6         //2、創建solr的文檔對象并將數據修改
 7         SolrInputDocument document = new SolrInputDocument();
 8         document.addField("id", "001");
 9         document.addField("title", "博學谷");
10         //3、將文檔對象添加到solr服務器
11         server.add(document);
12         //4、提交
13         server.commit();
14     }

需求三:對solr服務中的數據進行刪除操作,根據id刪除、刪除所有數據?

 1   //刪除solr服務器上collection2實例中的指定數據:
 2     @Test
 3     public void delete() throws Exception{
 4         //1、連接solr服務器
 5         SolrServer server = new HttpSolrServer("http://localhost:8080/solr/collection2");
 6         //2、根據id刪除數據
 7         server.deleteById("002");
 8         //3、提交
 9         server.commit();
10     }
11     
12     //刪除solr服務器上collection1實例中的所有數據:
13     @Test
14     public void deleteAll() throws Exception{
15         //1、連接solr服務器
16         SolrServer server = new HttpSolrServer("http://localhost:8080/solr/collection1");
17         //2、刪除指定實例下的所有數據
18         server.deleteByQuery("*:*");
19         //3、提交
20         server.commit();
21     }

需求四:檢索solr服務中collection3實例中的全部數據?

 1   //查詢solr服務器上collection3實例中所有的數據:
 2     @Test
 3     public void findAll() throws Exception{
 4         //1、連接solr服務器
 5         SolrServer server = new HttpSolrServer("http://localhost:8080/solr/collection3");
 6         //2、創建查詢對象
 7         SolrQuery query = new SolrQuery();
 8         //3、給查詢對象中設置查詢條件
 9         query.setQuery("*:*");
10         //4、查詢并獲取響應
11         QueryResponse response = server.query(query);
12         //5、從響應中獲得結果集
13         SolrDocumentList results = response.getResults();
14         //6、處理結果集
15         //輸出結果集的總查詢條數
16         System.out.println(results.getNumFound());
17         for (SolrDocument solrDocument : results) {
18             System.out.println("id*************"+solrDocument.get("id"));
19             System.out.println("title**********"+solrDocument.get("title"));
20             System.out.println("===========================================");
21         }
22     }

?

轉載于:https://www.cnblogs.com/1315925303zxz/p/6246458.html

總結

以上是生活随笔為你收集整理的Solr_全文检索引擎系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。