solr6.6從Mysql查詢數據

1、環境

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:域的名稱

3、配置 dataimport

在使用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&amp;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>

4、啓動solr

一、參數 注意的是這裏的command參數,它有兩個選項

full-import:全量導入,它會覆蓋原有的索引

delta-import:即增量導入,它會在原有索引的基礎上追加

下面的幾個多選框含義解釋以下:

verbose:這個選項設爲true的話,會打印導入的一些中間過程的詳細信息,有利於調試以及瞭解內部操做細節

clean:表示是否在導入數據建立索引以前先清空掉原有的索引

commit:表示是否當即提交索引

optimize:表示是否優化索引

debug: 表示是否開啓調試模式

二、點擊藍色的按鈕,執行導入,導入過程依據數量量的大小,須要的時間也不一樣。若是數據量小,等待時間過長, 那就不要傻傻的等了,看看Loging中的日誌信息是否是報錯了。

成功導入以下圖:

三、檢索數據

相關文章
相關標籤/搜索