solr8.3.0配置dataimport

1 当新建core后,选择Dataimport选项是如下状态:此博文就是配置数据导入的笔记

2 把solr-8.3.0/dist/目录下的 solr-dataimporthandler-extras-4.7.0.jar和solr-dataimporthandler-4.7.0.jar,mysql-connector-java-8.0.18.jar复制到tomcat下的\webapps\solr\WEB-INF\lib中。

百度网盘:链接: https://pan.baidu.com/s/1QZBlcGzwzcFCE2NEQeVSnw 提取码: sxrv 

ls|grep solr-dataimport|xargs -i cp /root/solr-8.3.0/dist/{} /usr/local/tomcat8.5/webapps/solr/WEB-INF/lib/

cp mysql-connector-java-8.0.18.jar /usr/local/tomcat8.5/webapps/solr/WEB-INF/lib/

3 添加如下内容到/usr/local/solrhome/test_core/solrconfig.xml:

<requestHandler name="/dataimport" class="solr.DataImportHandler">
      <lst name="defaults">
            <str name="config">data-config.xml</str>
      </lst>
</requestHandler>

4 新建配置文件data-config.xml,这里主要用来连接数据库并创建solr索引,内容如下

 <dataConfig>
    <!-- 这是mysql的配置,学会jdbc的都应该看得懂 -->
	<dataSource type="JdbcDataSource"   
          driver="com.mysql.jdbc.Driver"   
          url="jdbc:mysql://localhost:8080/manage"   
          user="test"   
          password="test"/>
    <document>
        <!-- name属性,就代表着一个文档,可以随便命名 -->
        <!-- query是一条sql,代表在数据库查找出来的数据 -->
        <entity name="crm_follow" query="select * from crm_follow">
            <!-- 每一个field映射着数据库中列与文档中的域,column是数据库列,name是solr的域(必须是在managed-schema文件中配置过的域才行) -->
            <field column="topic_id" name="topicId"/>
			<field column="user_id" name="userId"/>
            <field column="contacts_id" name="ContactsId"/>
            <field column="type" name="type"/>
			<field column="status" name="status"/>
			<field column="next_flow_time" name="nextFlowTime"/>
			<field column="ecDate" name="ecDate"/>
			<field column="is_assist" name="isAssist"/>
			<field column="content" name="content"/>
			<field column="remarks" name="remarks"/>
            <field column="create_time" name="createTime"/>
        </entity>
    </document>
</dataConfig>

5 很重要:在managed-schema文件中增加field标签(推荐),也可以在管理后台增加,效果一样,二选一即可

<field name="news_content" type="text_ik" indexed="true" stored="false"/>
  <field name="news_origin" type="string" indexed="true" stored="true"/>
  <field name="news_title" type="text_ik" indexed="true" stored="true"/>

6 执行

可能会出现的问题:

a 对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾

请修改数据库url中的&符号为&amp;,比如:

jdbc:mysql://192.168.10.150:3306/lizhimin?useUnicode=true&amp;characterEncoding=utf-8

b Data Config problem: 与元素类型 "entity" 相关联的 "query" 属性值不能包含 '<'

请注意query的sql语句中不能有"<"符号,如果有都会报错

解决办法:solr SB,修改语句,如把where id<100改为where id between 0 and 100之类的语句

c 一定要注意下图中的数字是否正确,如果不正确请查看日志,有很大可能是filed没有建导致document生成失败

d 如果多个copyField的dest指向同一个field的name,者该field的multiValued="true"一定不能少,切记切记!!!

<field name="news_keywords" type="text_ik" multiValued="true" indexed="true" stored="false"/>

 <copyField source="news_content" dest="news_keywords"/>
 <copyField source="news_origin" dest="news_keywords"/>
 <copyField source="news_title" dest="news_keywords"/>

e 启用ReloadDebug-Mode后出现如下错误:

Use of the dataConfig param (DIH debug mode) requires the system property enable.dih.dataConfigParam because it's a security risk.

原因请参照:【威胁通告】Apache Solr远程代码执行漏洞 (CVE-2019-0193)预警通告 http://blog.nsfocus.net/cve-2019-0193/

把enable.dih.dataConfigParam=true加入到tomcat的启动参数中即可:

编辑tomcat/bin/catalina.sh,在第二行加入:JAVA_OPTS="$JAVA_OPTS -Denable.dih.dataConfigParam=true"

然后重启tomcat,使用 ps aux|grep tomcat查看一下有没有生效,如果没有,请参考https://blog.csdn.net/qq_28497823/article/details/103313423中第5步的操作。

7查询

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 要配置Solr定时器,你需要进行以下步骤:首先,在solrhome/dist中找到solr-dataimporthandler-5.5.0.jar,solr-dataimporthandler-extras-5.5.0.jar,solr-core-5.5.0.jar三个包,将它们一并复制到solrhome/server/lib中。然后,在solrconfig.xml文件中添加以下代码片段:<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"><lst name="defaults"><str name="config">data-config.xml</str></lst></requestHandler>[2如果已经存在请求处理程序节点,你需要在其后面添加以下配置:<requestHandler name="/dataimport" class="solr.DataImportHandler"><lst name="defaults"><str name="config">data-config.xml</str></lst></requestHandler>[3这样就完成了Solr定时器的配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [solr安装笔记与定时器任务](https://blog.csdn.net/weixin_34050005/article/details/92981244)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [Linux下安装Solr7.2.1以及配置Solr(CentOS7)](https://blog.csdn.net/weixin_42400413/article/details/83143176)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值