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以及数据库,因为我这边做的是企业级的搜索,所以用的是数据库建立索引.其实从数据库建立索引,很大程度上取决于原来的数据库设计. 从数据库建立索引, ...
随机推荐
- js编写验证码
这是一个简单的js编写的验证码,自己已经亲自验证,没有问题了 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN ...
- NDN与TCP/IP
搬运自http://blog.csdn.net/programmer_at/article/details/49203241 当前TCP/IP协议存在哪些问题?如何改进? 当时没有回答好,然后提到了 ...
- NSURLConnection获取数据
- (void)loadDataFromUrl { NSURL* url = [NSURL URLWithString:@"http://m.weather.com.cn/data/1011 ...
- android 中如何限制 EditText 最大输入字符数
方法一: 在 xml 文件中设置文本编辑框属性作字符数限制 如:android:maxLength="10" 即限制最大输入字符个数为10 方法二: 在代码中使用InputFilt ...
- [LeetCode] Word Search [37]
题目 Given a 2D board and a word, find if the word exists in the grid. The word can be constructed fro ...
- struts2处理请求流程详解
struts2大概分为两块:一是struts2系统初始化,二是struts2处理请求,对请求作出响应. 下面就说说个人对struts2对请求处理流程的理解: 下面是StrutsPrepareAndEx ...
- SQL语句查询结果额外加入一列序号自己主动添加
sqlserver 能够用row_number函数实现 例如以下: SELECT *,row_number() OVER(ORDER BY score(列名) DESC) AS rank FROM s ...
- Machine Learning—Mixtures of Gaussians and the EM algorithm
印象笔记同步分享:Machine Learning-Mixtures of Gaussians and the EM algorithm
- javascript內容向上不間斷滾動
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 《CSS网站布局实录》学习笔记(四)
第四章 CSS网站元素设计 4.1 网站导航 网站导航是网站中最重要的元素.从形式上看,网站导航主要分横向导航.纵向导航.下拉及多级菜单导航灯3种常见形式. 横向导航:作为门户网站的设计而言,主导航一 ...