solr全文檢索(多欄位搜尋)

2021-08-16 03:27:39 字數 3113 閱讀 3549

dist: solr部署的war包,solrj客戶端

example\solr: 乙個標準的solr的索引庫

example\lib\ext: solr服務和solrj客戶端依賴的jar包

f: 重啟tomcat,訪問http://localhost:8888/solr

第一步:把ikanalyzer2012ff_u1.jar新增到solr/web-inf/lib目錄下。

第二步:複製ikanalyzer的配置檔案和自定義詞典和停用詞詞典到solr的solr/web-inf/classes目錄下

複製ik分詞器配置檔案、自定義詞典、停用詞詞典

貼上到tomcat的solr的/web-inf/classes目錄下

第三步:在schema.xml中新增乙個自定義的fieldtype,使用中文分析器。

第四步:在schema.xml中新增field,指定field的type屬性為text_ik

第五步:重啟tomcat

使用dataimport外掛程式批量匯入資料。

第一步:把dataimport外掛程式依賴的jar包新增到solrcore(collection1\lib)中, 還

需要mysql

的資料庫驅動。orcal資料驅動(ojdbc6)

第二步:配置solrconfig.mxl檔案,新增乙個requesthandler。

class="org.apache.solr.handler.dataimport.dataimporthandler">

data-config.xml

第三步:建立乙個data-config.xml,儲存到collection1\conf\目錄下

<?xml version="1.0" encoding="utf-8" ?> 

driver="com.mysql.jdbc.driver"  

url="jdbc:mysql://localhost:3306/lucene"  

user="root"  

password="root"/>  

第四步:重啟tomcat

//複雜查詢索引

@test

public

voidqueryindex2()throwsexceptionelse

system.out

.println(productname);

system.out

.println(solrdocument.get(

"product_price"

)); system.out

.println(solrdocument.get(

"product_catalog_name"

)); system.out

.println(solrdocument.get(

"product_picture"

)); }}

設定拷貝域

fault_all

查詢語句  多欄位高亮顯示  多網域名稱查詢

//建立查詢語句

solrquery query = new solrquery();

//設定關鍵字

if(keyword == null || keyword.equals(""))

query.setquery(keyword);

//設定查詢域

query.set("df", "fault_all");

//設定高亮展示

query.sethighlight(true);

//新增高亮展示網域名稱

query.addhighlightfield("fault_name");

query.addhighlightfield("fault_reason");

query.addhighlightfield("fault_solve");

//設定字首

query.sethighlight******pre("");

//設定字尾

query.sethighlight******post("");

//獲得返回值

queryresponse response = solrserver.query(query);

//獲取結果集

solrdocumentlist results = response.getresults();

//獲得高亮顯示結果集

map>> highlighting = response.gethighlighting();

listlist = new arraylist<>();

for (solrdocument fault : results) else

listreasonlist = highlighting.get(fault.get("id")).get("fault_reason");

if( reasonlist != null && reasonlist.size() > 0 )else

listsolvelist = highlighting.get(fault.get("id")).get("fault_solve");

if( solvelist != null && solvelist.size() > 0 )else

list.add(faultmodel1);

}return list;

solr全文檢索

1 安裝solr,修改配置檔案中的資料庫 例項 需要檢索的字段 分詞器等 詳情見上篇博文 2 控制台建立例項 匯入資料 詳情見上篇博文 3 導包 org.springframework.boot spring boot starter data solr 3 全文檢索時,將查詢的字段 欄位名傳入so...

solr全文檢索隨筆

5 啟動tomcat下面的solr服務,在啟動jabaweb的服務,就可以連線。solr新增登入名和密碼步驟 在tomcat檔案中找到tomcat users.xml新增 admin password admin roles solr 使用者名稱和密碼 在solr的web.xml檔案中新增 solr...

全文檢索 solr的使用

全文檢索這個系列在幾前年寫過lucene的文章,而現在看來它確實已經老了,它的兒子孫子都出來了,已經成為現在檢索行列的主流,像solr,elasticsearch等,今天我們主要來看乙個solr在aspnetcore裡的使用,也就是增刪改查之類的,比較容易!nuget包 solrnet 注入方式 全...