1. 程式人生 > >淘淘商城22_全文檢索_ik中文分詞器02_solr的增刪改查

淘淘商城22_全文檢索_ik中文分詞器02_solr的增刪改查

一. 建立solr資料庫,匯入資料

如何匯入資料庫這裡就不再贅述了

百度網盤:

連結:https://pan.baidu.com/s/1qtdadvsR6Cy6281DfGFx7Q 
提取碼:6w14 

 

二. 設定業務系統Field

如果不使用Solr提供的Field可以針對具體的業務需要自定義一套Field,如下是商品資訊Field

業務邏輯的前提:

搜尋的時候通過哪些欄位進行搜尋,

在頁面展示的時候,展示哪些內容.

使用solr做全文檢索:  我們搜尋的資料和我們頁面展示的資料,都來源於solr索引庫.

<!--product-->
   <field name="product_name" type="text_ik" indexed="true" stored="true"/>
   <field name="product_price"  type="float" indexed="true" stored="true"/>
   <field name="product_description" type="text_ik" indexed="true" stored="false" />
   <field name="product_picture" type="string" indexed="false" stored="true" />
   <field name="product_catalog_name" type="string" indexed="true" stored="true" />

   <field name="product_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
   
   <copyField source="product_name" dest="product_keywords"/>
   <copyField source="product_description" dest="product_keywords"/>

 

三. 維護索引

1. 批量匯入資料

1.1 把dataimport外掛依賴的jar包(solr-4.10.1\dist)新增到solrhome\collection1\lib中

建立一個lib目錄

 

還有mysql的驅動包

連結:https://pan.baidu.com/s/11mduCBUMlmoY9hHyoOc_XQ 
提取碼:76mn 

 

1.2 配置solrconfig.mxl檔案

新增一個requestHandler。

 <requestHandler name="/dataimport" 
class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
      <str name="config">data-config.xml</str>
     </lst>
  </requestHandler> 

 

 1.3 建立一個data-config.xml,儲存到collection1\conf\目錄下

data-config.xml 

<?xml version="1.0" encoding="UTF-8" ?>  
<dataConfig>   
	<dataSource type="JdbcDataSource"   
			  driver="com.mysql.jdbc.Driver"   
			  url="jdbc:mysql://localhost:3306/solr"   
			  user="root"   
			  password="123456"/>   
	<document>   
		<entity name="product" query="SELECT pid,name,catalog_name,price,description,picture FROM products ">
			 <field column="pid" name="id"/> 
			 <field column="name" name="product_name"/> 
			 <field column="catalog_name" name="product_catalog_name"/> 
			 <field column="price" name="product_price"/> 
			 <field column="description" name="product_description"/> 
			 <field column="picture" name="product_picture"/> 
		</entity>   
	</document>   

</dataConfig>

1.4 重啟Tomcat

 

 

這樣呢,我們就把資料庫中的資料匯入到索引庫

四. 在索引庫進行增刪改查

1. 增加資料

2. 查詢

3. 修改

這裡的修改是在原id的基礎上進行修改,再進行查詢的時候是先刪除以前的,再進行查詢

 

4. 刪除

要將Dcoument Type改為xml

<delete>
  <id>11100</id>
</delete>

這樣查的話,發現還是有資料的,這是怎麼回事?

這是因為我們執行刪除操作的時候沒有提交事物

所以,我們要加上<commit/>

<delete>
  <id>11100</id>
</delete>
<commit/>

這樣才刪除成功

5. 其他查詢

顯示的全是有關臺燈的資訊

5.1 fq:區間  product_price:[30 TO 50]

以下查詢的是價格30--50的檯燈

5.2 sort:排序 product_price desc

5.3 start,rows

start:從第幾條開始

rows:顯示多少條資料

 

5.4 fl:顯示的欄位  product_name,product_price

5.5 df:預設的搜尋域 在schema.xml中有設定

5.6 wt:返回的資料型別,一般返回的是json

5.7  hl:高亮顯示

什麼是高亮顯示?比如說,我們再百度上搜索“手機”,會有紅色顯示,如圖:

這就是高亮顯示