1. 程式人生 > >全文索引----solr客戶端工具solrJ

全文索引----solr客戶端工具solrJ

      上一篇部落格中,我們使用solr的桌面客戶端工具展示返回的資料,如果我們需要在程式中使用這些返回值的話,就需要另外的一個工具了----solrJ。
一 solrJ介紹
    1 是什麼?
    為了方便的操作solr伺服器,Apache為我們提供了solrJ工具,我們可以通過solrJ對solr伺服器進行建立索引、更新、查詢、處理返回值等操作,它其實相當於solr伺服器和我們程式進行資料通訊的橋樑。
    2 環境配置
    要使用solrJ工具,我們必須匯入相應的jar包,這裡推薦使用maven工具,因為低版本jar包沒有HttpSolrServer物件,並且不支援對solr伺服器中資料的刪除,所以建議使用高版本jar包,本人使用4.0.0版本jar包,在pom檔案中配置如下:

	 <dependency>  
	      <artifactId>solr-solrj</artifactId>  
	      <groupId>org.apache.solr</groupId>  
	      <version>4.0.0</version>  
	      <type>jar</type>  
	      <scope>compile</scope>  
	 </dependency> 


下邊我們開始solrJ旅程。
二 重要物件介紹
    1 HttpSolrServer
    此物件用於連線solr伺服器,所有的對solr伺服器的增刪改查都由此物件完成,我們可以稱他為solr客戶端的核心物件。
    2 SolrQuery
    此物件用於封裝查詢條件,我們可以將我們的查詢條件包括分組、排序等全部封裝到這個物件中,然後由HttpSolrServer物件來執行查詢物件。
    3 QueryResponse
    從名字可以看出來,這個物件是對response物件的封裝,這個物件是用來封裝返回值的,我們可以通過這個物件得到solr伺服器的返回資料。
    4 SolrDocumentList
    這是一個集合物件,是solr伺服器返回值的物件,類似jdbc中的ResultSet,我們得到我們想要的結果,通過一次簡單迭代就可以。
三 實現
    1 連線伺服器
    我們繼續使用我們上篇播客中的solr伺服器,使用HttpSolrServer連線伺服器,程式碼如下:

                String url = "http://192.168.22.216:8983/solr";
		HttpSolrServer server  = new HttpSolrServer(url);
		
		server.setSoTimeout(3000); // socket read timeout
		server.setConnectionTimeout(1000);
		server.setDefaultMaxConnectionsPerHost(1000);
		server.setMaxTotalConnections(10);
		server.setFollowRedirects(false); // defaults to false
		server.setAllowCompression(true);
		server.setMaxRetries(1);


    2 清空現有索引

	try {
			server.deleteByQuery("*:*");
		} catch (SolrServerException e1) {
			e1.printStackTrace();
		} catch (IOException e1) {
			e1.printStackTrace();
		}


    3 構造索引

	//構造document1
	SolrInputDocument doc1 = new SolrInputDocument();
	doc1.addField( "id", "id1", 1.0f );
	doc1.addField( "name", "doc1", 1.0f );
	doc1.addField( "price", 10 );


	//構造document2
	SolrInputDocument doc2 = new SolrInputDocument();
	doc2.addField( "id", "id2", 1.0f );
	doc2.addField( "name", "doc2", 1.0f );
	doc2.addField( "price", 20 );


	//構造document集合
	Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
	docs.add(doc1);
	docs.add(doc2);


	//將documents提交給solr
	try {
		server.add(docs);
	} catch (SolrServerException e1) {
		e1.printStackTrace();
	} catch (IOException e1) {
		e1.printStackTrace();
	}
	    
	//提交一個commit(方法一)
	try {
		server.commit();
	} catch (SolrServerException e) {
		e.printStackTrace();
	} catch (IOException e) {
		e.printStackTrace();
	}


    4 設定查詢條件

	//設定查詢條件
	SolrQuery query = new SolrQuery();
	query.setQuery("*:*");
	query.addField("name");
	query.setStart(0);
	query.setRows(4);
	query.addSortField("id", SolrQuery.ORDER.desc);
	//query.addSortField("auction_point", SolrQuery.ORDER.asc);

    5 處理查詢結果

	//處理查詢結果
	QueryResponse qrsp = null;
	try {
		qrsp = server.query(query);
	} catch (SolrServerException e) {
		e.printStackTrace();
	}  
        SolrDocumentList docsT = qrsp.getResults();
        Iterator i = docs.iterator();
        while(i.hasNext()){
                System.out.println(i.next());
        }

    6 結果





宣告:如無特殊宣告,本系列部落格以solr-4.7.2版本為例,如有錯誤,敬請斧正。
 

相關推薦

全文索引----solr客戶工具solrJ

      上一篇部落格中,我們使用solr的桌面客戶端工具展示返回的資料,如果我們需要在程式中使用這些返回值的話,就需要另外的一個工具了----solrJ。 一 solrJ介紹     1 是什麼

配置solr客戶全文搜索服務器)

服務 nbsp group per tid 客戶端 pre artifact rop <properties> <solrj.version>4.10.3</solrj.version> </properties>

【Apache Solr系列之三】Solr客戶SolrJ API使用文件-增刪改

通過之前兩篇文章的學習之後,使用solr對mysql進行資料匯入以及增量索引應該都會了! 接下來我們學習下如果從Solr中讀取我們想要的資料。同時你也可以結合Solr的web介面進行驗證,看看你的查詢結果是否正確。 環境準備: 從之前下載的solr安裝包中解壓獲取以下ja

mysql 客戶工具參數詳解

mysql 客戶端工具參數詳解客戶端工具:mysql,mysqladmin,mysqldump,mysqlcheck非客戶端類的管理工具:myisamchk,myisampackmysql命令提示符mysql> 等待輸入命令‘> 前面提供的‘未提供結束’”>`>—> 續航符/*

PostgreSQL 圖形化客戶工具的使用技巧你都get了嗎?

scrip pos sta har 但是 聚類 發現 功能 containe PostgreSQL 數據庫作為目前功能較強大的開源數據庫,得到了廣泛應用。其中,TSA就用到了這款數據庫來存儲處理後的一些業務數據。雖然PostgreSQL自身提供了命令行交互式客戶端工具psq

+++++++icfg,ip,nmcli網絡屬性配置及網絡客戶工具使用

linuxLinux主機聯網:ifcofnig,route,netstat,ip,ss別名、主機名、接口命名網絡客戶端工具命令: ftp,lftp,wget,lftpgetnmap,ncat,tcpdump工具nmcli,nmtui <沒有CentOS 7 不能使用。。以後在補>Linux主機聯網

MySQL初始化以及客戶工具的使用

sock 詳細信息 linux form 關系型 orm ctr create 主機名                       MySQL初始化以及客戶端工具的使用                                             作者:尹正傑 版

dovecot並發數造成foxmail、outlook等客戶工具接收郵件有時候報錯

ash als stat class false limit var proc net 問題:dovecot並發數造成foxmail、outlook等客戶端工具接收郵件有時候報錯,頻繁點收取郵件報錯。/var/log/maillog日誌有大量的報錯:Jan 24 14:01

dovecot vsz_limit參造成foxmail、outlook等客戶工具接收郵件有時候報錯

客戶 大量 fat foxmail 解決 ase toolbar ron memory 問題:dovecot並發數造成foxmail、outlook等客戶端工具接收郵件有時候報錯,關閉客戶端工具後又可以了。/var/log/maillog日誌有大量的報錯:Jan 25 08

網絡客戶工具

建立 錯誤 ftp服務器 客戶 head ike 問題 ssh配置文件 flat ftp ,lftp,sftp ftp — Internet file transfer program ftp [-pinegvd] [host] -d: 詳細

網絡客戶工具—ftp、lftp、wget

ftp lftp wget ftp命令系統默認沒有安裝ftp命令的軟件包[root@CentOS6 ~]# yum -y install ftp ... Running Transaction Installing : ftp-0.17-54.el6.x86_64

outlook等客戶工具外發郵件提示550 5.7.1 Unable to relay for

Unable to relay for問題現象:outlook、foxmail等客戶端工具外發郵件提示550 5.7.1 Unable to relay for(發內網郵件不會)、網頁方式發送外網和內網郵件都可以。解決辦法:可能性1:在exchange郵件服務器中,發現默認的SMTP虛擬服務沒有啟用;於是啟動

MySQL客戶工具以及常用SQL語句

SQL語句Mysql客戶端工具: 在用yum安裝的maiadb-server的時候,在/etc/my.cnf.d下有一個名為client.cnf的文件,編輯此文件,在此文件的[client]下添加用戶名和密碼就可以不用輸入口令登錄 vim /etc/my.cnf.d/client.cn

實戰作業2,配置yum客戶工具

yum 程序包 管理 rpm 更多內容請點擊: Linux學習從入門到打死也不放棄,完全筆記整理(持續更新,求收藏,求點贊~~~~) http://blog.51cto.com/13683480/2095439 rpm是一款很好用

010-PLSQL Developer 客戶工具的安裝

設置環境變量 eve tns oracle安裝 reg 開始 32位 頁面 說明 安裝之前先把客戶端工具instantclient_12_1拷貝到一個沒有中文和空格的目錄中去, 比如我直接放到了D:\tools下面。註意這裏需要的是32bit的。 下面開始安裝PLS

[ 搭建Redis本地服務器實踐系列三 ] :圖解Redis客戶工具連接Redis服務器

done not 必須 tin 復雜 start exe eas 方便 上一章 [ 搭建Redis本地服務器實踐系列二 ] :圖解CentOS7配置Redis 介紹了Redis的初始化腳本文件及啟動配置文件,並圖解如何以服務的形式來啟動、終止Redis服務,可以說我們的R

Zookeeper--0200--安裝與集群搭建、常用命令、客戶工具

客戶端軟件 href 根節點 log nbsp ron lan 常用命令 .cn 看這裏, http://www.cnblogs.com/lihaoyang/p/8358153.html 1,先使用可視化客戶端軟件 ZooInspector 連接上集群中的一個節點,看下z

30、mysql初始化及客戶工具的使用

mysql監聽的埠: 3306/tcp 檢視埠 ss -tnl 檢視命令歷史 ~/.mysql_history Mysql初始化:提供配置檔案(/etc/mysql/my.cnf  /etc/my.cnf  ~/.my.cnf) 集中式的配置:多個應用程式共用的配置檔案

kafka視覺化客戶工具(Kafka Tool)的基本使用

1、下載 下載地址:http://www.kafkatool.com/download.html   2、安裝 根據不同的系統下載對應的版本,我這裡kafka版本是1.1.0,下載kafka tool 2.0.1。 雙擊下載完成的exe圖示,傻瓜式完成安裝。 3、簡單使用

【PL\SQL developer 一】PL\SQL developer - Oracle的客戶工具安裝

注意:oracle客戶端和pl/sql developer 是相同的位數,32位都是32位,64位都是64位,不然會報錯。 一.SQL*PLUS客戶端工具 1.下載,網址為:http://www.oracle.com/technetwork/database/features/in