solr使用三 在實際業務中使用SolrJ

2021-10-05 17:16:05 字數 2064 閱讀 1248

solr官方提供了對於不同客戶端的例子,詳見solrj官方文件

一、引入pom檔案

org.apache.solr

solr-solrj

$

二、建立solr中對應的實體類-solruserentity,對於solr中的field需要加入@field註解

/**

* 用來對應solr中的實體

* @author jacksparrow414

* @date 2020-05-03

* @description: todo

*/public class solruserentity ';}}

三、使用solrj進行新增、更新、刪除、查詢操作

1、提供乙個統一獲取solrclient的工具類,所有與solr的操作均使用乙個solrclient

/**

* @author jacksparrow414

* @date 2020-05-03

* @description: todo

*/class solrutil }}

return solrclient;}}

2、建立solrservice類,完成對cusdomdata的操作

/**

* @author jacksparrow414

* @date 2020-05-03

* @description: todo

*/@service

public class solrservice

/*** 向solr中新增資料

* 第二種方式

* @throws exception

*/public void insertdatatosolrbybean() throws exception

/*** 更新solr中的資料

* @throws exception

*/public void updatedatatosolrbybean() throws exception

/*** 從solr中查詢資料

* 第一種方式

* @throws exception

*/public void querydatafromsolr()throws exception

/*** 從solr中查詢資料

* 第二種方式

* @throws exception

*/public void querydatafromsolrbysolrquery() throws exception

/*** 根據查詢條件刪除solr中的資料

* @throws exception

*/public void deletedatafromsolr()throws exception

}

說明:solr提供了兩種對資料crud的方式,一種不需要實體類,另一種需要對應的實體類,並需要@field註解。

個人建議使用實體類方式,結合實際業務場景來看,一般的業務順序基本如下:

接收前端json資料->將json資料轉換為對應的實體類->入mysql資料庫表->更新solr中對應的core

所以直接使用前面的實體即可,從上面的例子也可以看出,新增/更新實體類基本只需要呼叫addbean即可,此外solr還提供很豐富的其他方法,addbeans-批量新增/更新、deletebyid-更加id刪除等

注意:solrclient.commit()時候需要指定對應的core,提交完畢之後關閉客戶端連線

四、在solr控制台驗證對資料的操作是否生效

可以看到solr控制台已經插入了上面方法裡的資料,ide中通過solrj查詢到剛才插入的資料

上述示例工程**已放到github,如有需要,請自取。

在中使用SQLDMO

曾幾何時,夥伴們為的公升級傷透了腦筋.往往程式的公升級趕不上資料庫的公升級 版本控制的好,這也許不是什麼問題,但對於很大一部分中國公司來說這是無法避免的 而有些n久以前的資料庫要使用新程式的時候,資料庫的公升級簡直就是無從下手.所以對比資料庫公升級的緊要性就逐漸的凸現出來.對於表和字段的公升級按道理...

在C 中使用OpenCV(使用GOCW)

1 什麼是gocw 2 gocw有什麼特點 3 gocw在vs中的環境配置 其中,gocw是類庫檔案,而winform demo是引用範例。使用vs2017或者更高版本開啟winform demo.sln 或新建winform程式 在 引用 處新增gocw的引用。特別需要注意,正確編譯gocw需要o...

在ClanLib中使用blend func

本文是對blend func完全沒有認識的人寫的,就好象一天前的我一樣。廢話我就留到後面才說吧。在clanlib庫中的cl su ce與cl sprite中都會有 這個函式 void set blend func cl blendfunc src,cl blendfunc dest 其cl blen...