1. 程式人生 > >基於tomcat的solr環境搭建(Linux)

基於tomcat的solr環境搭建(Linux)

column def ews web 排序 publish text height lte

?? solr是基於lucene的一個全文檢索服務器,提供了一些類似webservice的API接口,用戶可以通過http請求solr服務器,進行索引的建立和索引的搜索。
索引建立的過程:用戶提交的文本會經過分詞器進行分詞,分詞後的關鍵字會存到索引庫裏,索引庫是關鍵字和目標文檔的映射集。
索引搜索的過程:用戶提交的搜索文本也是會經過分析器,得到的關鍵字會去索引庫查詢對應的目標文檔並返回給客戶端,采用的是權重排序算法。

1.solr的安裝

技術分享

2.中文分詞器的安裝

技術分享

配置信息:

 <!--中文分詞器 -->
     <fieldType name="text_ik" class
="solr.TextField"> <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/> <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/> </fieldType>

3.1 DIH全量同步

技術分享

相關配置信息:

<!-- 數據導入配置 
--> <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler>

3.2

技術分享

相關配置信息:

3.3 schema.xml同步字段配置

技術分享

相關配置信息:

   <!--
同步mysql爬蟲表的字段 --> <field name="create_date" type="date" indexed="true" stored="true"/> <field name="update_date" type="date" indexed="true" stored="true"/> <field name="news_url" type="text_general" indexed="true" stored="true"/> <field name="news_origin" type="text_general" indexed="true" stored="true"/> <field name="key_word" type="text_general" indexed="true" stored="true"/> <field name="news_html" type="text_ik" indexed="true" stored="true"/> <field name="is_publish" type="int" indexed="true" stored="true"/> <field name="is_del" type="int" indexed="true" stored="true"/> <field name="flag_number" type="text_general" indexed="true" stored="true"/> <field name="out_line" type="text_ik" indexed="true" stored="true"/> <field name="state" type="int" indexed="true" stored="true"/> <!-- 同步mysql爬蟲表的字段end -->

4.1DIH的增量同步(其實就是修改data-config.xml配置文件)

技術分享

技術分享

相關配置信息:

<dataConfig>
    <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.40.1:3306/shanghang" user="root" password="root" />
    <document>
            <entity name="consensus_data2" pk="id" transformer="DateFormatTransformer"  query="select * from consensus_data2 where id >= ‘${dataimporter.request.id}‘"
                 deltaImportQuery="select * from consensus_data2 where id = ‘${dih.delta.id}‘"
                 deltaQuery="select id from consensus_data2 where create_date > ‘${dataimporter.last_index_time}‘">
                <field column="id" name="id" />
                <field column="create_date" name="create_date" dateTimeFormat=‘yyyy-MM-dd HH:mm:ss‘/>
                <field column="update_date" name="update_date" dateTimeFormat=‘yyyy-MM-dd HH:mm:ss‘ />
                <field column="news_url" name="news_url" />
                <field column="news_origin" name="news_origin" />
                <field column="keyWord" name="key_word" />
                <field column="news_html" name="news_html" />
                <field column="is_publish" name="is_publish" />
                <field column="is_del" name="is_del" />
                <field column="flag_number" name="flag_number" />
                <field column="out_line" name="out_line" />
                <field column="state" name="state" />
            </entity>
    </document>
</dataConfig>

技術分享

基於tomcat的solr環境搭建(Linux)