基於tomcat的solr環境搭建(Linux)
阿新 • • 發佈:2017-07-31
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)