solr環境搭建和添加core: Solr6.6.0(ik分詞器) Tomcat8部署 mysql
mysql5.1web
###2、認識solr域sql
一、域的類型- fieldType:數據庫
<fieldType name="uuid" class="solr.UUIDField" indexed="true" />
name:域的名稱apache
class:指定solr的類型數組
indexed:是否作索引tomcat
二、域的定義- field:app
<field name="id" type="uuid" indexed="true" stored="true" required="true" multiValued="false" />
name:域的名稱webapp
type:域的類型,必須匹配類型 如:string,int優化
indexed:是否作索引
stored:是否存儲
required:是否必填,通常只有id纔會設置
multiValued:是否容許存多個值,容許則裏面的值採用數組的方式來存儲
三、動態域- dynamicField:
該域的名稱是經過一個表達式來指定的,只要符合這個規則,就可使用這個域。好比 a_i,b_i,c_i等等
<dynamicField name="*_i" type="int" indexed="true" stored="true"/>
name:域的名稱
在使用solr界面查詢mysql數據時,須要先把數據載入到solr,創建索引後,才能查詢數據,因此須要使用到solr的dataimport(導入數據庫數據)功能。
這裏配置的solr自動生成ID,能夠看我另外一篇博客:Solr6.6.0 自動生成ID
一、首先找到solr-6.6.0\dist\solr-dataimporthandler-6.6.0.jar,把這個文件複製到apache-tomcat-8.0.9\webapps\solr\WEB-INF\lib下,而且找到mysql數據庫的驅動包,也一樣放到該目錄。
二、找到solr-6.6.0\example\example-DIH\solr\db\conf\db-data-config.xml,把其複製到solr_home\solr\my_core\conf下
三、找到solr_home\solr\my_core\conf\solrconfig.xml,打開並編輯以下代碼:
<requestHandler name="/dataimport" class="solr.DataImportHandler"> <lst name="defaults"> <str name="config">solr-data-config.xml</str> </lst> </requestHandler>
改成我們複製的db-data-config.xml
<requestHandler name="/dataimport" class="solr.DataImportHandler"> <lst name="defaults"> <str name="config">db-data-config.xml</str> <str name="update.chain">uuid</str> </lst> </requestHandler>
四、打開並編輯db-data-config.xml,完整的配置文件以下
在配置數據庫鏈接是講url裏的特殊符號要作轉義,不然會報錯
<dataConfig> <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/jfinal_demo?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull" user="root" password="123456"/> <document> <!-- name屬性,就表明着一個文檔,能夠隨便命名 --> <!-- query是一條sql,表明在數據庫查找出來的數據 --> <entity name="speech" query="select * from speech"> <!-- 每個field映射着數據庫中列與文檔中的域,column是數據庫列,name是solr的域(必須是在managed-schema文件中配置過的域才行) --> <field column="id" name="s_id"/> <field column="content" name="s_content"/> <field column="operator" name="s_operator"/> <field column="person_synopsis" name="s_person_synopsis"/> <field column="person_title" name="s_person_title"/> </entity> </document> </dataConfig>
一、參數 注意的是這裏的command參數,它有兩個選項
full-import:全量導入,它會覆蓋原有的索引
delta-import:即增量導入,它會在原有索引的基礎上追加
下面的幾個多選框含義解釋以下:
verbose:這個選項設爲true的話,會打印導入的一些中間過程的詳細信息,有利於調試以及瞭解內部操做細節
clean:表示是否在導入數據建立索引以前先清空掉原有的索引
commit:表示是否當即提交索引
optimize:表示是否優化索引
debug: 表示是否開啓調試模式
二、點擊藍色的按鈕,執行導入,導入過程依據數量量的大小,須要的時間也不一樣。若是數據量小,等待時間過長, 那就不要傻傻的等了,看看Loging中的日誌信息是否是報錯了。
成功導入以下圖:
三、檢索數據