Solr Dataimport配置
参考资料:
https://cwiki.apache.org/confluence/display/solr/Uploading+Structured+Data+Store+Data+with+the+Data+Import+Handler
https://wiki.apache.org/solr/DataImportHandler
http://wiki.apache.org/solr/TikaEntityProcessor
Solr 通过Dataimport可以对各种文件类型(包括邮件)建索引,也可以对关系型数据库建索引。
前提依赖Jar包
Dataimport从关系型数据库建索引时,依赖以下jar包,这些Jar包位于Solr安装包下面的solr-6.1.0\dist\目录下目录下:
本实例是SQL Server关系型数据库,所以还要添加sqljdbc42.jar到指定路径下。

Dataimport为普通文件建索引时,依赖以下jar包,这些jar包位于Solr安装包的solr-6.1.0\contrib\extraction\lib目录下

这些jar包在本机上的统一存放位置为:/var/lib/solr/lib/
在solrconfig.xml文件中添加以上jar包的引用。
<lib dir="/var/lib/solr/lib/" regex=".*\.jar" />
一、配置solrconfig.xml
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">tika-data-config.xml</str>
<str name="update.chain">uuid</str>
</lst>
</requestHandler>
二、配置tika-data-config.xml
在文件solrconfig.xml同级目录下,新建文件tika-data-config.xml,tika-data-config.xml文件中的内容配置如下:
<dataConfig>
<!--可以配置多个dataSource,每个都有唯一一个name-->
<dataSource name="sqldb2" driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://10.2.8.170:1433" user="xxx" password="xxxxxxx"/>
<dataSource type="BinFileDataSource" name="f1"/>
<dataSource type="FileReaderDataSource" name="f2"/> <document>
<!--可以配置多个Entity,每个Entity通过name属性来区分-->
<!--Entity数据源为文件-->
<entity name="files" dataSource="f1" rootEntity="false"
processor="FileListEntityProcessor"
baseDir="/usr/local/solr/files/"
fileName=".*.(doc)|(pdf)|(xls)|(ppt)|(docx)|(txt)|(pptx)|(xlsx)|(xml)|(csv)|(json)|(html)|(sh)|(css)|(png)"
recursive="true"> <field column="fileAbsolutePath" name="url" />
<field column="fileSize" name="size" />
<field column="fileLastModified" name="lastModified" />
<field column="file" name="fname"/>
<entity
name="documentImport"
processor="TikaEntityProcessor"
url="${files.fileAbsolutePath}"
format="text">
<field column="Author" name="author" meta="true"/>
<field column="title" name="title" meta="true"/>
<field column="subject" name="subject" meta="true"/>
<field column="Content-Type" name="content_type" meta="true"/>
<field column="text" name="content"/>
</entity>
</entity>
<!--Entity数据源为SQL Server数据库-->
<entity name="DimOrganization" dataSource="sqldb2"
query="SELECT [物料类型名称] as 名称 FROM [GreeBGDW].[dbo].[Dim_MaterielType]">
<field column="名称" name="name"/>
</entity>
<!--Entity数据源为SQL Server数据库-->
<entity name="" dataSource="sqldb2"
query="SELECT [name] as name , [name] as cat ,name as manu FROM [GreeBGDW].[dbo].[180119]">
<field column="name" name="name"/>
<field column="cat" name="cat"/>
<field column="manu" name="manu"/>
</entity> </document>
</dataConfig>
一个简单的实体处理程序,可以用于枚举标准文件系统中的文件列表,它不需要使用DataSource.属性如下:
- fileName:(必填) 用正则表达式来标记文件名
- baseDir:(必填) 基础目录,绝对路径.
- recursive:是否递归文件列表,默认为false.
- excludes:不包括的文件名的正则表达式
- newerThan:日期参数,格式: (yyyy-MM-dd HH:mm:ss),它也可以是一个数学日期,如('NOW-3DAYS'),其中的单引号是必填的.也可以是一个有效的变量格式,如(${var.name}).
- olderThan :日期格式,规则同上.
- biggerThan:整型参数.
- smallerThan:整型参数.
- rootEntity:它一般情况下都是false(除非你只索引文件名).直属于<document>下的实体才是根实体.那就意味着,根实体发出的每一行都会被solr/lucene创建.但是在这种情况下,我们不希望一个文件对应一个文档(document).我们希望生成一个文档(document),每一行的发出都是由下面的实体'x'来完成的.因为实体'f'包含了rootEntity=false,直属实体f下的实体就变成了一个根实体.
- dataSource:数据源
【错误一】 org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /configs/collection2/dataimport.properties

【解决方法】在配置文件conf/目录下添加一个空的dataimport.propertie文件。
Solr Dataimport配置的更多相关文章
- solr连接数据库配置
一般要搜索的信息都是被存储在数据库里面的,但是我们不能直接搜数据库,所以只有借助Solr将要搜索的信息在搜索服务器上进行索引,然后在客户端供客户使用. 一.链接数据库 1. SQL配置 拿SQL Se ...
- Solr学习笔记之3、Solr dataimport - 从SQLServer导入数据建立索引
Solr学习笔记之3.Solr导入SQLServer数据建立索引 一.下载MSSQLServer的JDBC驱动 下载:Microsoft JDBC Driver 4.0 for SQL Server ...
- 威胁快报|Solr dataimport成挖矿团伙新型利用方式
概述 近日,阿里云安全团队监测到挖矿团伙利用solr dataimport RCE(CVE-2019-0193)作为新的攻击方式对云上主机进行攻击,攻击成功后下载门罗币挖矿程序进行牟利.该团伙使用的恶 ...
- solr多核配置
假设已经配置好了一个单core的solr服务器. solr.xml配置文件 单核和多核主要在solr.xml配置不同.在solr/example中已经有一个名称为multicore的文件夹里面给我们配 ...
- BugPhobia沟通篇章:Solr模式配置与数据导入调研
0x01 :Scrum Meeting特别说明 特别说明,考虑到编译原理课程考核的时间安排,每天开发时间急剧缩短以至于难以维系正常的Scrum Meeting,因此,将2015/12/13 00:00 ...
- solr scheme配置简介
solr 字段配置,和数据库数据索引配置 配置solr字段. schema.xml 文件里配置 先讲解一下,里面的一些字段 1. <types> ... </types> 表示 ...
- 在Solr中配置中文分词IKAnalyzer
李克华 云计算高级群: 292870151 交流:Hadoop.NoSQL.分布式.lucene.solr.nutch 在Solr中配置中文分词IKAnalyzer 1.在配置文件schema.xml ...
- solr 日志配置
配置Solr日志记录 临时记录设置 您可以使用Admin Web界面来控制Solr中的日志输出量.选择LOGGING链接.请注意,此页面只允许您更改正在运行的系统中的设置,并不会保存在下一次运行中 ...
- 四、Solr数据源配置(JNDI、DIH)及定时重做索引
简介 Solr支持很多种创建索引的方式,包括网页,xml以及数据库,因为我这边做的是企业级的搜索,所以用的是数据库建立索引.其实从数据库建立索引,很大程度上取决于原来的数据库设计. 从数据库建立索引, ...
随机推荐
- EditText输入长度动态控制,最大长度为16位,小数点后面最大为2位,输入整数只能为13位
首先在xml 中把inputType设置为numberDecimal (包含小数点)然后在把maxLeng设置为16 package com.example.numbertest; import an ...
- Java学习日记-10 集合
集合(Collection) 1. 什么是集合? 集合是一组对象组成的一个整体,又称为容器,集合类属于java.util包.集合不同于数组的地方在于,一是它的容量是可变的,二是集合中只能存储对象,不能 ...
- 果酷:80后IT男“鲜果切”年入千万 _ 财经频道 _ 东方财富网(Eastmoney.com)
果酷:80后IT男"鲜果切"年入千万 _ 财经频道 _ 东方财富网(Eastmoney.com) 果酷:80后IT男"鲜果切"年入千万
- Data Guard 之 浅析Switchover与Failover
Data Guard主从库之间的角色切换分为以下两种:1)SwitchoverSwithchover通常都是人为的有计划的进行角色互换,比如升级等.它通常都是无损的,即不会有数据丢失.其执行主要分为两 ...
- cocos2d-x 2.2.3 之菜单分析(1)
TextEdit-Menu CCtextFieldTTF cocos2d – x 中提供的 bool T04ZORDER::init() { if (!CCLayer::init()) { retur ...
- linux经常使用命令
linux经常使用命令 pwd 查看当前工作文件夹的绝对路径 cat input.txt 查看input.txt文件的内容 ls 显示当前文件夹下全部的文件及子文件夹 rm recommender-d ...
- Spring-----1、Spring一个简短的引论
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGVrZXdhbmd6aQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- linux开关机命令
1.reboot重启 2.shutdown -r now 立即重启 root用户使用,与reboot命令相同 3.shutdown -r 10 过10分钟后重启root用户使用 4.shutdown ...
- 【网络流#6】POJ 3041 Asteroids 二分图最大匹配 - 《挑战程序设计竞赛》例题
学习网络流中ing...作为初学者练习是不可少的~~~构图方法因为书上很详细了,所以就简单说一说 把光束作为图的顶点,小行星当做连接顶点的边,建图,由于 最小顶点覆盖 等于 二分图最大匹配 ,因此求二 ...
- 将用户信息保存到Cookie中
/** * 把用户保存到Cookie * * @param request * @param response * @param member */ private void rememberPwdA ...