淘淘商城22_全文檢索_ik中文分詞器02_solr的增刪改查
阿新 • • 發佈:2019-01-02
一. 建立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:高亮顯示
什麼是高亮顯示?比如說,我們再百度上搜索“手機”,會有紅色顯示,如圖:
這就是高亮顯示