利用solr的 DataImportHandler从mysql数据库建立索引

mac2022-07-05  32

http://quentinxxz.iteye.com/blog/2100619

http://quentinxxz.iteye.com/blog/2100619

 

本文所有实验在solr4.4上进行

 quickStart 参考 http://wiki.apache.org/solr/DIHQuickStart

步骤1: 首先修改solrconfig.xml 加往上DataImportHandler的配置 <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler>   步骤2:配置solr服务器时一般报这个错org.apache.solr.common.SolrException: RequestHandler init failure或java.lang.ClassNotFoundException: org.apache.solr.handler.dataimport.DataImportHandler异常。原因是找不到solr-dataimporthandler-4.4.0.jar这个jar包,默认不在solr.war包里,在下载包的dist目录下 我的做法是直接 solr-dataimporthandler-4.4.0.jar 与solr-dataimporthandler-extra-4.4.0.jar 两个jar包放入 solr-webapp\webapp\WEB-INF\lib目录 mysql-connector-java-5.1.31.jar 也要放入该目录下。 当然也可以利用solrconfig.xml中的lib标签进行配置  <lib ...... />   步骤3: 新建data-config.xml 文件,到conf目录下。示例如下 <dataConfig>   <dataSource type="JdbcDataSource"               driver="com.mysql.jdbc.Driver"               url="jdbc:mysql://199.xxx.xxx.xxx/quentinxxz_com"               user="qqq"               password="qqq"/>   <document>     <entity name="product"             query="select id, price,modify_time from tts_product">        <field column="price" name="tts_price"/>        <field column="modify_time" name="tts_modify_time"/>     </entity>   </document> </dataConfig>     步骤4:再在schema.xml中加入field     <field name="tts_price" type="int" indexed="true" stored="true" />           <field name="tts_modify_time" type="date" indexed="true" stored="true" />         步骤5: 访问 http://solr-host:port/solr/dataimport?command=full-import  进行一步全量索引。默认情况下,索引先被全部清除。如果你不想清除可加入参数clean=false.   http://solr-host:port/solr/dataimport?command=full-import&clean=false   http://solr-host:port/solr/dataimport?command=full-import 默认返回结果为 <response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">35</int> </lst> <lst name="initArgs"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </lst> <str name="command">full-import</str> <str name="status">idle</str> <str name="importResponse"/> <lst name="statusMessages"/> <str name="WARNING"> This response format is experimental. It is likely to change in the future. </str> </response>   当然也可能通过web ui界面进行索引操作 http://localhost:8983/solr/#/collection1/dataimport//dataimport    

转载于:https://www.cnblogs.com/davidwang456/articles/9449684.html

最新回复(0)