中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

solr7.4創建core,導入MySQL數據,中文分詞

發布時間:2020-07-21 14:34:45 來源:網絡 閱讀:8242 作者:wx5b8f9d554305e 欄目:大數據

#solr版本:7.4.0

一、新建Core

  1. 進入安裝目錄下得server/solr/,創建一個文件夾,如:new_core

  2. 拷貝server/solr/configsets/_default/conf/下的solrconfig.xml、protwords.txt、synonyms.txt、stopwords.txt文件和lang文件夾,到剛剛創建的new_core文件夾下

  3. 拷貝server/solr/configsets/_default/conf/下的schema.xml文件到剛剛創建的new_core文件夾下,將其重命名為schema.xml

  4. 進入solr頁面選擇Core Admin,設置好名字還有剛才新建的dir,Add Core
    solr7.4創建core,導入MySQL數據,中文分詞

  5. 然后在core selector 就能看到剛才新建的core 了。

solr7.4創建core,導入MySQL數據,中文分詞

二、導入MySQL數據

  1. 打開剛添加的solrconfig.xml文件 vi server/solr/new_core/solrconfig.xml,查找一下requestHandler標簽,在標簽同級下加入導入數據的配置
    <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
        <str name="config">db-data-config.xml</str>
    </lst>
    </requestHandler>
  2. new_core下新增db-data-config.xml文件(樣例在安裝目錄example/example-DIH/solr/db/conf/下有),并添加如下配置:
    <dataConfig>
    <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/db_name" user="root" password="" />
    <document>
        <entity name="product" 
                    query="select product_id as id,title from table_name"
                 deltaImportQuery="select product_id as id,title from table_name where PRODUCT_ID='${dih.delta.id}'"
                    deltaQuery="select product_id as id from table_name where add_time > '${dataimporter.last_index_time}'">
        </entity>
    </document>
    </dataConfig>
  3. 下載mysql-connector-java驅動 https://dev.mysql.com/downloads/connector/j/
    解壓mysql-connector-java-(xxx).jar到安裝目錄下的server/solr-webapp/webapp/WEB-INF/lib
  4. 在頁面上選擇Dataimport應該有了
    solr7.4創建core,導入MySQL數據,中文分詞
  5. 在Schema上添加字段,如title(要存在query屬性的sql語句能查出來的那些字段當中)
    solr7.4創建core,導入MySQL數據,中文分詞
    solr7.4創建core,導入MySQL數據,中文分詞
  6. 在Dataimport 上執行導入,可以看到已經新增了4條記錄了
    solr7.4創建core,導入MySQL數據,中文分詞
    然后在query上查看導入結果
    solr7.4創建core,導入MySQL數據,中文分詞

三、增量導入MySQL數據

  1. 導入數據不可能每次全量導入,新增的數據只要增量導入就好,檢查db-data-config.xml配置,確保有deltaImportQuery, deltaQuery兩項
    last_index_time會保存在這個core的Instance目錄下的conf/dataimport.properties文件
    solr7.4創建core,導入MySQL數據,中文分詞
  2. 現在我在數據表中再插入幾條數據
    solr7.4創建core,導入MySQL數據,中文分詞
  3. 這次我們在頁面選擇delta-import執行一下看看
    solr7.4創建core,導入MySQL數據,中文分詞
  4. 再去看下結果,也成功導入
    solr7.4創建core,導入MySQL數據,中文分詞
    5.這是細心的人會發現dataimport.properties記錄的是UTC時間,而數據表中用的是中國時間,要怎么讓它們一致呢?
    這里提供一個解決辦法,利用sql語句來轉換時區:
    修改deltaQuery
    SELECT product_id AS id FROM table_name WHERE add_time > '${dataimporter.last_index_time}'

    改為

    SELECT product_id AS id FROM table_name WHERE add_time > CONVERT_TZ('${dataimporter.last_index_time}', '+00:00', '+08:00')

四、中文分詞

  1. 拷貝分詞jar到指定目錄server/solr-webapp/webapp/WEB-INF/lib/
    cp contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-7.4.0.jar server/solr-webapp/webapp/WEB-INF/lib/
  2. 編輯schema文件 vi server/solr/new_core/conf/managed-schema
    添加:
    <fieldType name="text_cn" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
      </analyzer>
    </fieldType>

    把title改為text_cn類型

  3. 重啟solr,title已經改為text_cn,但是還沒分詞效果
    solr7.4創建core,導入MySQL數據,中文分詞
  4. 在dataimport選擇clean再full-import一次,重新導入數據,再回到字段查看一下Term Info ,這次分詞成功了
    solr7.4創建core,導入MySQL數據,中文分詞
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乐平市| 电白县| 定南县| 呼玛县| 榕江县| 洛南县| 奉节县| 竹溪县| 盱眙县| 土默特右旗| 德保县| 阳谷县| 珲春市| 伊金霍洛旗| 融水| 平远县| 塔河县| 丽江市| 海城市| 开远市| 大宁县| 泰宁县| 金坛市| 乾安县| 衢州市| 洪洞县| 顺义区| 岐山县| 邻水| 龙州县| 海盐县| 天祝| 肃宁县| 拉萨市| 鄂州市| 天镇县| 大埔县| 鄂伦春自治旗| 阳江市| 额尔古纳市| 攀枝花市|