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以及数据库,因为我这边做的是企业级的搜索,所以用的是数据库建立索引.其实从数据库建立索引,很大程度上取决于原来的数据库设计. 从数据库建立索引, ...
随机推荐
- NEW关键字的三种用法
最近面试中有一道题是写new关键字的几种用法,想了下写下我知道的两种用法 第一种 创建对象.调用构造函数,这就不用讲了 ClassA A=new ClassA(); 第二种 是作为修饰符,显示隐藏继 ...
- Makefile中的wildcard和patsubst
makefile 里的函数跟它的变量很相似——使用的时候,你用一个 $ 符号跟开括号,函数名,空格后跟一列由逗号分隔的参数,最后用关括号结束. 例如,在 GNU Make 里有一个叫 'wild ...
- 【转】VS调试技巧
[转自]http://blog.csdn.net/ghttzsqgm/article/details/5326894 http://blog.csdn.net/cadcisdhht/article/d ...
- HDOJ 1028 Ignatius and the Princess III(递推)
Problem Description "Well, it seems the first problem is too easy. I will let you know how fool ...
- List的数据结构
从这张图片说起:TreeList的实现结构: 首先是构建函数 TreeList(Collection coll),调用增加函数: public void add(int index, Object o ...
- goodAddr
http://www.tuicool.com/articles/ZV7vya [tungsten'实时'同步mysql数据到mongodb]
- python用parammiko模块实现linux的远程操作
parammiko 可以实现远程的带密码登录,解决ssh远程登陆需要交互的问题 (当然很多其他的,如tcl也可以).但这个用python做比较简单 1.parammiko 的安装 1.1.依赖模块 ...
- UVALive 4959 Jumping monkey
题意就是: 一个猎人在森林里捕猎. 然后有只猴子,喜欢躲树的后边,猎人看不见它 然后给出了一张图,表示有哪些树是相邻的. 数据保证任意图中两个树都可以直接或间接的到达 猎人有一个枪,每次他可以选择一颗 ...
- analytics.js
Analytics.js简介 analytics.js JavaScript代码段是一种可用于衡量用户与您网站的互动情况的全新方式.它与之前的跟踪代码ga.js类似,但为开发者自定义实现方案提供了 ...
- hdu 1685 Booksort (IDA*)
Booksort Time Limit: 10000/10000 MS (Java/Others) Memory Limit: 102400/102400 K (Java/Others) Tot ...