全文索引----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