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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

solr7.4.0+mysql+solrj(简而优美)

發布時間:2023/12/18 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 solr7.4.0+mysql+solrj(简而优美) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄:

1 solr7部署+創建核心
2 solr mysql 連接
 2.1 導入相關 jar包
 2.2 配置連接信息
 2.3 配置中文分析器
3 solrj JAVA客戶端應用
 3.1 solrj 構建和運行
 3.2 solrj 應用(數據的 增、刪、改、查)
 3.3 solrj JavaBean 整合應用


?

1 solr7部署+創建核心

solr7需要java8環境,且需要在環境變量中添加 JAVA_HOME變量。

solr有兩種啟動模式:

獨立模式:適用于數據規模不大的場景

云模式:適用于數據規模大,高可靠、高可用、高并發的場景,基于zookeeper中間件

獨立模式是以 (core/核心) 來管理,云模式是以(collection/集合)來管理。

本教程使用獨立模式,請到apache官網下載壓縮包windows版,solr-7.4.0.zip / 壓縮到本地

cd solr-7.4.0/bin/? 常用命令:

 solr.cmd start? ? 啟動 默認端口:8983

 solr.cmd stop -all? 停止??

 solr.cmd create -c?[options]? 創建核心

 solr.cmd status 運行狀態

首先啟動solr? 執行命令?solr.cmd start? 并在瀏覽器下能訪問到下圖所示則表示訪問成功

?

?然后創建核心 ,這里我的核心名字叫bless? ?solr.cmd start -c bless 。下圖表示創建成功

?

新創建core\核心的目錄位置

?


?

2 solr mysql 連接?

2.1 導入相關 jar包

2.1.1? 下載 mysql 驅動包:mysql-connector-java-x.x.x.jar

2.1.2? 將 mysql 驅動包導入 solr :將下載下來的?mysql-connector-java-x.x.x.jar 拷貝到 solr-7.4.0\server\solr-webapp\webapp\WEB-INF\lib 下;

2.1.3? 將solr{home}\dist目錄下的:solr-dataimporthandler-7.4.0.jar和solr-dataimporthandler-extras-7.4.0.jar這兩個jar包拷貝到 solr-7.4.0\server\solr-webapp\webapp\WEB-INF\lib下

?

?

?

?

?

2.2 配置連接信息

把solr-7.4.0\example\example-DIH\solr\db下的文件復制到你創建的core里面 --> solr-7.4.0\server\solr\bless

?

打開conf目錄在db-data-config.xml和managed-schema中進行配置

?

??我的數據庫表信息

?

db-data-config.xml配置數據庫連接信息

<dataConfig><dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3307/leslia" user="root" password="root" /><document><entity name="bless" query="select * from bless"><field column="bless_id" name="id" /><field column="bless_content" name="blessContent" /><field column="bless_time" name="blessTime"/></entity></document> </dataConfig>

?這個地方要注意一下 ,field主鍵必須設置為name="id",否則solr找不到主鍵會出現問題,為什么?看一下managed-schema配置文件中的這個主鍵配置

?

?然后去managed-schema里配置對應的field字段,這個也可以在管理端直接添加,也可以手動修改配置文件,name屬性要與db-data-config.xml 文件中name屬性一致

<field name="blessContent" type="text_general" indexed="true" stored="true"/> <field name="blessTime" type="pdate" indexed="true" stored="true"/>

?

好了配置完畢。重啟solr,導入數據

查詢數據庫記錄是否導入

2.3 配置中文分析器

在solr-7.4.0/contrib/analysis-extras/lucene-libs下找到lucene-analyzers-smartcn-7.4.0.jar? copy 到?solr-7.4.0\server\solr-webapp\webapp\WEB-INF\lib

修改conf/managed-schema 添加如下配置信息,并重新啟動solr

<!-- ChineseAnalyzer --> <fieldType name="text_ik" class="solr.TextField" positionIncrementGap="100"><analyzer type="index"><tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/></analyzer><analyzer type="query"><tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/></analyzer> </fieldType>

使用中文分析?

不使用中文分析

?

給數據庫字段配置中文分析,需要修改managed-schema配置文件 type="text_ik",具體應用本教程不再涉及。

<field name="blessContent" type="text_ik" indexed="true" stored="true"/> <field name="blessTime" type="pdate" indexed="true" stored="true"/>

?


?

3? solrj JAVA客戶端應用

solrJ是訪問Solr服務的JAVA客戶端,提供索引和搜索的請求方法,SolrJ通常嵌入在業務系統中,通過solrJ的API接口操作Solr服務。

示例數據還是應用上面mysql數據庫導入的

3.1 solrj 構建和運行

添加maven依賴

<dependency><groupId>org.apache.solr</groupId><artifactId>solr-solrj</artifactId><version>7.4.0</version> </dependency>

3.2 solrj 應用(數據的 增、刪、改、查)

獲取?HttpSolrClient 連接

private static final String solrUrl="http://localhost:8983/solr/bless";//創建solrClient同時指定超時時間,不指定走默認配置private static HttpSolrClient client=new HttpSolrClient.Builder(solrUrl).withConnectionTimeout(10000).withSocketTimeout(60000).build();

?

3.2.1 solrj 查詢

@Testpublic void querySolr() throws Exception{//封裝查詢參數SolrQuery query = new SolrQuery("*:*");//添加需要回顯得內容query.addField("id");query.addField("blessContent");query.addField("blessTime");query.setRows(20);//設置每頁顯示多少條//執行查詢返回QueryResponseQueryResponse response = client.query(query);//獲取doc文檔SolrDocumentList documents = response.getResults();for(SolrDocument solrDocument:documents){System.out.println(solrDocument.get("id"));System.out.println(solrDocument.get("blessContent"));System.out.println(solrDocument.get("blessTime"));}//關閉資源client.close();}

?測試信息

3.2.2 solrj 增加/修改? ? ?修改是id不變其他字段變更

@Testpublic void solrAdd() throws Exception{//創建文檔docSolrInputDocument doc = new SolrInputDocument();doc.addField("id", 21);doc.addField("blessContent", "solrj add");doc.addField("blessTime",new Date());//添加到clientUpdateResponse updateResponse = client.add(doc);//索引文檔必須commitclient.commit();}

?在管理端查看一下剛才添加的信息

?

?

?3.2.3 solrj 刪除? 刪除有3種方式

@Testpublic void solrDelete() throws Exception{//1 通過id 刪除client.deleteById("1");//2 通過id List 刪除ArrayList<String> ids = new ArrayList<String>();ids.add("2");ids.add("3");client.deleteById(ids);//3 通過 查詢信息刪除client.deleteByQuery("id:4");// 提交client.commit();// 關閉資源client.close();}

?3.3 solrj? javaBean 整合應用? ?

SolrJ支持通過@Field注解隱式轉換文檔與任何類每個實例變量在Java對象可以映射到一個相應的Solr字段中,使用?field注解

solr的fieldtype屬性javaBean 屬性類型
stringString
booleanBoolean
pintInteger
pdoubleDouble
plongLong
pfloatFloat
pdateDate

?

?

?

?

?

?

?

?

創建實體類:

public class Bless {@Fieldprivate String id;@Fieldprivate String blessContent;@Fieldprivate Date blessTime;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getBlessContent() {return blessContent;}public void setBlessContent(String blessContent) {this.blessContent = blessContent;}public Date getBlessTime() {return blessTime;}public void setBlessTime(Date blessTime) {this.blessTime = blessTime;}}

?

3.3.1 solrj + javaBean 查詢

@Testpublic void queryBean() throws Exception{SolrQuery query = new SolrQuery("*:*");//添加需要回顯得內容query.addField("id");query.addField("blessContent");query.addField("blessTime");query.setRows(20);//設置每頁顯示多少條//執行查詢返回QueryResponseQueryResponse response = client.query(query);//獲取doc文檔List<Bless> blessList=response.getBeans(Bless.class);for(Bless bless:blessList){System.out.println(bless.getId());System.out.println(bless.getBlessContent());System.out.println(bless.getBlessTime());}client.close();}

?

3.3.2 solrj + javaBean 增加

@Testpublic void addBean() throws Exception{Bless bless=new Bless();bless.setId("19");bless.setBlessContent("solr java bean add");bless.setBlessTime(new Date());//添加對象UpdateResponse response = client.addBean(bless);//提交操作 client.commit();//關閉資源 client.close();}

?

至此,solr 簡單應用已經介紹完畢。本篇文章屬于簡單優美型,并未深入探索,希望能幫助到各位同學。如需幫助可在博客下方留言。

?

轉載于:https://www.cnblogs.com/leslia/p/9544202.html

總結

以上是生活随笔為你收集整理的solr7.4.0+mysql+solrj(简而优美)的全部內容,希望文章能夠幫你解決所遇到的問題。

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