日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Solr4.7从数据库导数据

發布時間:2025/3/15 数据库 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Solr4.7从数据库导数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實際工程應用中,從數據庫導出數據創建索引再常見不過了,現在實驗一下從數據庫導入數據創建索引。

?

一、版本說明

Solr版本:4.7.0

數據庫:sqlserver2005

?

二、配置步驟

1、? 準備的jar包

1)? solr-dataimporthandler-extras-4.7.0.jar;在solr發布包solr-4.7.0\dist里面有

2)? solr-dataimporthandler-4.7.0.jar;在solr發布包solr-4.7.0\dist里面有

3)? jtds-1.2.2.jar;網上自己找

2、? 修改solr的core配置

要想哪個core從數據庫導入數據建索引就修改哪個core的配置。

?

2.1修改solrconfig.xml

添加如下這段配置:

[html]?view plaincopy
  • <requestHandler?name="/dataimport"?class="org.apache.solr.handler.dataimport.DataImportHandler">???
  • ??????<lst?name="defaults">???
  • ???????????<str?name="config">data-config.xml</str>???
  • ??????</lst>???
  • </requestHandler>??

  • 2.2添加data-config.xml

    在solrconfig.xml同一個文件夾內建立data-config.xml,其配置如下:

    [html]?view plaincopy
  • <?xml?version="1.0"?encoding="UTF-8"??>??
  • ??
  • <dataConfig>???
  • ??<dataSource?type="JdbcDataSource"???
  • ??????????????driver="net.sourceforge.jtds.jdbc.Driver"???
  • ??????????????url="jdbc:jtds:sqlserver://localHost/MyHousekeeper"???
  • ??????????????user="sa"???
  • ??????????????password="123456"/>???
  • ??<document>???
  • ????????<entity?name="pay"?query="SELECT?payId,payName,payMoney,payDescription,payDatetime?FROM?t_pay">??
  • ????????<field?column="payId"??????????name="id"?/>??
  • ????????<field?column="payName"????????name="name"?/>??
  • ????????<field?column="payMoney"???????name="money"?/>??
  • ????????<field?column="payDescription"?name="description"?/>??
  • ????????<field?column="payDatetime"????name="datetime"?/>??
  • ????????</entity>???
  • ??</document>???
  • ??
  • </dataConfig>??

  • 2.3修改schema.xml

    修改這個的目的是讓solr知道有哪些field,是否需要索引,是否需要在索引庫中存儲原文,以及field類型。在上面的sql中有很多種數據類型。

    payId:整型

    payName:字符型

    payMoney:浮點數

    payDescription:大文本

    payDatetime:日期時間格式

    首先在schema.xml中申明field類型,配置在<types> </types>內。下面配置的sring類型是不會做分詞處理的,視為完整的一個詞,text_ik是一個中文分詞器ik-analyzer,專門處理中文分詞。

    如下:

    [html]?view plaincopy
  • <types>??
  • ???<fieldtype?name="string"??class="solr.StrField"???????sortMissingLast="true"?omitNorms="true"/>??
  • ???<fieldType?name="long"????class="solr.TrieLongField"??precisionStep="0"?positionIncrementGap="0"/>??
  • ???<fieldType?name="float"???class="solr.TrieFloatField"?precisionStep="0"?positionIncrementGap="0"/>??
  • ???<fieldType?name="date"????class="solr.TrieDateField"??precisionStep="0"?positionIncrementGap="0"/>??
  • ???<fieldType?name="text_ik"?class="solr.TextField">???
  • ?????<analyzer?class="org.wltea.analyzer.lucene.IKAnalyzer"/>???
  • ???</fieldType>???
  • ??</types>??

  • 然后申明field,field的名字應該和sql的查詢結果集列名一致,如果不一致,需要在data-config.xml中entity標簽中用field指明列和field的對應關系。

    Field配置如下:

    [html]?view plaincopy
  • <fields>?????
  • ??<field?name="_version_"???????type="long"???????indexed="true"??stored="true"/>??
  • ???
  • ??<field?name="id"??????????????type="long"???????indexed="true"??stored="true"??multiValued="false"?required="true"/>??
  • ??<field?name="name"????????????type="string"?????indexed="true"??stored="true"??multiValued="false"?/>???
  • ??<field?name="money"???????????type="float"??????indexed="true"??stored="true"??multiValued="false"?/>???
  • ??<field?name="description"?????type="text_ik"????indexed="true"??stored="true"??multiValued="false"?/>???
  • ??<field?name="datetime"????????type="date"???????indexed="true"??stored="true"??multiValued="false"?/>???
  • ?</fields>??

  • 其中如下field是必須的,用于標記版本信息,由solr內部自己維護。

    [html]?view plaincopy
  • <field?name="_version_"???????type="long"???????indexed="true"??stored="true"/>??

  • 三、導入測試

    進入solr管理界面,command選擇full-import全部導入;entity需要導入的實體,也就是配置的哪個sql,點擊execute執行導入,如果數據很多的話需要導一段時間,不時的點一下refresh status刷新一下,看看導入是否完成,導入完成后會告訴你導入了多少數據,用了多少時間。如下圖

    做個查詢測試,query,

    q,description:米;查詢description這個field名的米相關數據

    wt,json;查詢結果返回格式,默認json

    execute query,執行查詢,看到返回的json格式的查詢結果了。


    參考文獻:

    1)??http://www.chepoo.com/solr4-database-import-create-index.html

    2)??http://blog.csdn.net/bruce128/article/details/17796705


    轉載于:https://www.cnblogs.com/duyinqiang/p/5696729.html

    總結

    以上是生活随笔為你收集整理的Solr4.7从数据库导数据的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。