使用java操作solr
前面講了很多對solr的操作都是直接在頁面上操作的,實際工作中肯定是要使用java進行操作的,在這我們就看一下如何使用java來操作solr
Solr提供了solrj來使用java操作solr,SolrJ是封裝了httpClient方法,來操作solr的API的。首先添加maven依賴
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>4.10.4</version>
</dependency>
還要添加junit4的maven依賴
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
查詢query
下面就可以寫代碼了,新建一個testSolr類,
![]()
執行的時候發現報錯,是因為缺少common-logging的包,添加對應的maven依賴
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
這樣的話就可以把collection1這個索引庫里面的數據打印出來了,因為查詢條件是*:*
在這要注意這個baseurl,默認情況下,如果操作collection1里面的數據的話不需要指定就可以,默認就會操作collection1這個索引庫。
所以上面的兩個baseurl的效果是一樣的。
索引index
使用add方法,可以向solr中添加一條數據。
![]()
注解方式建立索引
在實際工作中,如果在建立索引的時候讓我們一個屬性一個屬性的設置是很麻煩的,一般都是直接使用一個對象,這樣使用起來也很方便。
首先創建一個實體類,主要注意里面的字段要添加一個注解,如果不添加的話solr是不能識別的。
![]() ![]()
這樣就可以把這個對象在solr中建立索引了。
刪除索引delete
可以根據ID進行刪除,或者根據查詢條件進行刪除。
![]()
拼寫檢查spellcheck
設置查詢的handler,修改為/spell,獲取查詢結果,如果查詢結果為0,則說明沒有查詢到結果,可能就是輸入的查詢關鍵字有錯誤,這樣就可以根據getspellcheckresponse方法獲取拼寫檢查的response,根據這個response的一些方法就可以獲取到建議的結果。
可以根據下面的方式獲取建議的結果。在這是從collation中獲取結果。
![]() ![]()
或者根據下面的方法獲取建議結果。在這是從suggestion中獲取結果。
![]()
上面的兩種方式都可以獲取建議拼寫的結果。
更多精彩內容請關注:http://bbs.superwu.cn
關注超人學院微信二維碼:
![]() |