solr增量导入数据怎么配置

64次阅读
没有评论

共计 4833 个字符,预计需要花费 13 分钟才能阅读完成。

这篇文章主要介绍“solr 增量导入数据怎么配置”,在日常操作中,相信很多人在 solr 增量导入数据怎么配置问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”solr 增量导入数据怎么配置”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

    简介: solr5.0 是一个独立的应用程序, 不再依赖其他 Web 服务器就能提供 Web 服务(这是和 4.x 版本最大的差异, 内置 jetty)。

 

启动 solr

 solr 提供了启动脚本

bin/solr start
前台运行 bin/solr start -f
指定端口号  bin/solr start -p 8984(默认端口号 8983)查看 solr 状态  bin/solr status
结束 solr bin/solr stop -p 8984

  后台管理地址 http://localhost:8984/solr

logging: 显示日志

Core Admin: core 就是搜索示例,放置索引。

java properties:查看 java 配置信息

Thread dump: 查看线程信息

创建一个搜索实例

{solr 安装路径}/server/solr/ 新建一个文件夹命名为 test

拷贝{solr 安装路径}/server/solr/configsets/sample_techproducts_configs 到 test 目录下

目录结构如下:
         

在后台采用如下配置:

配置 smartcn 分词期

第一步: 导入 smartcn 的 jar 包

在{solr 安装路径}/server/solr/test/conf/solrconfig.xml 加入如下代码

lib dir= ${solr.install.dir:../../../..}/contrib/analysis-extras/lucene-libs/  regex= .*smartcn.*\.jar /lib

第二步: 配置分词器

1.solr5

在{solr 安装路径}/server/solr/test/conf/schema.xml 加入如下代码

fieldType name= text_cn   >

2.solr6

在 {solr 安装路径}/server/solr/test/conf/managed-schema 加入如下代码

 fieldType name= text_cn   >


 

第三步: 检查是否正确配置
 
  如果可以搜索到 text_cn 即表示配置成功,最好用一段文字测试下分词结果。

配置数据导入 handler(用于数据导入,生成索引)

第一步:导入相关 jar 包(solr6 不需要这一步)

在{solr 安装路径}/server/solr/test/conf/solrconfig.xml 加入如下代码

 lib dir= ${solr.install.dir:../../../..}/dist/  regex= solr-dataimporthandler-.*\.jar  /

第二步: 配置 handler(solr6 不需要这一步)

在{solr 安装路径}/server/solr/test/conf/solrconfig.xml 加入如下代码

requestHandler name= /dataimport   >


第三步: 配置数据源, 源数据与索引的隐射关系

在{solr 安装路径}/server/solr/test/conf/ 下新建 db-data-config.xml, 配置如下:

 dataConfig 
  dataSource driver= com.mysql.jdbc.Driver  url= jdbc:mysql://127.0.0.1:3306/appfamecms  user= 1  password= 1 / 
  document name= articles 
  entity name= cms_article  query= select id,title,content,create_time from cms_article 
  field column= id  name= id  / 
  field column= title  name= title  / 
  field column= content  name= content  / 
  field column= create_time  name= create_time  / 
  /entity 
  /document 
 /dataConfig

第四步:验证配置是否成功

在后台 core admin 中 reload 当前搜索实例的配置

then 在搜索实例的 dataimport 出现下图情形即为成功

导入数据

第一步: 导入 mysql 的 jar 包 下载地址:见参考资料 5

将 jar 放置到{solr 安装路径}/dist 目录下,

在{solr 安装路径}/server/solr/test/conf/solrconfig.xml 加入如下代码

lib dir= ${solr.install.dir:../../../..}/dist/  regex= mysql.*\.jar  /

第二步: 验证配置(配置见第六点)

如果显示 indexing completed. Added/Updated: 1847 documents. Deleted 0 documents

documents 的个数大于 0 说明我们成功导入 x 条数据到 solr 中

设置 field 的索引方式

查询

更新索引

删除索引

优化

定时完整数据重新导入

crontab -e
curl -d  command=full-import clean=true commit=true optimize=true wt=json indent=true verbose=false debug=false   http://ip:port/solr/{core 名称}/dataimport

14. 增量导入数据配置

修改 db-data-config.xml 添加 deltaQuery、deltaImportQuery、pk 三个属性

    1.pk 设置主键字段名称,该字段必须在 managed-schema 配置过 uniqueKey 字段名 /uniqueKey

    2.deltaQuery 该属性用于查询主键字段值

    3.deltaImportQuery 该属性用于查询需要被索引的所有字段的 sql

dataConfig 
  dataSource driver= com.mysql.jdbc.Driver  url= jdbc:mysql://127.0.0.1:3306/appfamecms  user= 1  password= 1 / 
  document name= articles 
  entity name= cms_article  query= select id,title,content,create_time from cms_article  pk= id  deltaQuery= select id from cms_article where id ${dataimporter.delta.id}  deltaImportQuery= select id,title,content,create_time from cms_article where id={$dataimporter.delta.id} 
  field column= id  name= id  / 
  field column= title  name= title  / 
  field column= content  name= content  / 
  field column= create_time  name= create_time  / 
  /entity 
  /document 
 /dataConfig

15. 配置定时数据更新

16. 搜索词建议

https://cwiki.apache.org/confluence/display/solr/Suggester

更新中~~~

错误信息:

1. 配置好的 solr 没有任何数据,启动时报错:SolrException: Invalid Number: MA147LL/A

这不是你的错,你可能是把 solr schema.xml 的 id 设置成了 int 类型,设置成 int 类型没什么错,但是 solr 启动是会扫描 conf 目录下的 elevate.xml 文件,这个文件中定义的 id 值是 MA147LL/ A 所以就会出现异常 SolrException: Invalid Number: MA147LL/A

解决问题的方法是修改 elevate.xml 文件,将其中的 id 值设置为数字,就可以了。

dataConfig 
  dataSource driver= com.mysql.jdbc.Driver  url= jdbc:mysql://127.0.0.1:3306/appfamecms  user= 1  password= 1 / 
  document name= articles 
  entity name= cms_article  query= select id,title,content,create_time from cms_article  pk= id  deltaQuery= select id from cms_article where id ${dataimporter.delta.id}  deltaImportQuery= select id,title,content,create_time from cms_article where id={$dataimporter.delta.id} 
  field column= id  name= id  / 
  field column= title  name= title  / 
  field column= content  name= content  / 
  field column= create_time  name= create_time  / 
  /entity 
  /document 
 /dataConfig

2. 全量导入数据报:

Caused by: java.sql.SQLException: Illegal value for setFetchSize().

在 db-data-config.xml 的 dataSource 标签添加 batchSize 属性并赋值 - 1 即可,修改后的内容

dataConfig 
  dataSource driver= com.mysql.jdbc.Driver  url= jdbc:mysql://127.0.0.1:3306/appfamecms  user= 1  password= 1  batchSize= -1 / 
  document name= articles 
  entity name= cms_article  query= select id,title,content,create_time from cms_article  pk= id  deltaQuery= select id from cms_article where id ${dataimporter.delta.id}  deltaImportQuery= select id,title,content,create_time from cms_article where id={$dataimporter.delta.id} 
  field column= id  name= id  / 
  field column= title  name= title  / 
  field column= content  name= content  / 
  field column= create_time  name= create_time  / 
  /entity 
  /document 
 /dataConfig

到此,关于“solr 增量导入数据怎么配置”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计4833字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)