Solr DataImportHandler 配置
- Datasource:数据源,包含获取数据必需的信息:数据位置(url)、数据库driver、登录账号和password
- Entity:相当于数据库的一个视图,能够从一个表或联表查询获得
- Processor:数据处理器,负责从数据源中获取数据、处理、然后增加到索引中
- Transformer:数据转换器,可选,负责改动数据、创建新的field、或依据须要把一条记录变成多条记录
connector java
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">db-data-config.xml</str>
</lst>
</requestHandler>
中加入DIH jar包依赖:
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" />
- dataSource
- type: 数据源类型,如:JdbcDataSource(缺省值),採用SqlEntityProcessor
- driver: 数据库驱动,如:com.mysql.jdbc.Driver
- convertType:
- url: 数据库url
- user: 你懂的
- password: 你懂的
- document
- entity
- name: 随便起的一个标志,能够给嵌套的entity使用。比方${item.id}(如果name="item")
- query: 拉取全部数据的语句
- deltaQuery: 拉取delta数据的语句,如:deltaQuery="select * from xxx where last_modified > '${dataimporter.last_index_time}'"
- field: 指定 dataSource 的 field 和 solr 的field的相应关系,如:<field name="NAME" column="name" />
- entity: 嵌套的entity。定义一些一对多的数据。能够使用父entity的name作为条件,比方:where item_id='${item.id}'
- transformer: 指定transformer对象。多个的话用逗号分开
- entity
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
convertType="true"
url="jdbc:mysql://127.0.0.1:3306/db_name"
user="sa"
password="123456"/>
<document>
<entity name="course_video" query="SELECT id, title, content, tags FROM ts_course_video" >
</entity>
</document>
</dataConfig>
须要和另外一个配置文件配合使用:schema.xml。定义了field和fieldType。參考:http://blog.csdn.net/clementad/article/details/47666043
<? xml version="1.0" encoding="UTF-8" ?> <schema name="course_video" version="1.5">
<field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" /> <field name="_version_" type="long" indexed="true" stored="true"/> <field name="title" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="tags" type="string" indexed="true" stored="false" required="false" multiValued="false" />
<field name="content" type="string" indexed="true" stored="true" required="false" multiValued="false" /> <field name="info_text" type="text_general" indexed="true" stored="false" multiValued="true" /> <copyField source="title" dest="info_text" />
<copyField source="content" dest="info_text" />
<copyField source="tags" dest="info_text" /> <uniqueKey>id</uniqueKey> <fieldType name="string" class="solr.StrField" sortMissingLast="true" />
<fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/> <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer> <analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType> </schema>
通过HTTP请求(POST或GET)运行各种DIH操作:
- abort:停止当前正在进行的操作
- delta-import:调用deltaQuery拉取数据。
能够带上几个额外的參数:&clean=true&commit=true等等(和full_import同样)
- full-import:调用query拉取全部数据。
请求会立即返回。后台有新线程运行重建索引的操作。
能够通过status操作查询状态。
额外參数:
- clean:缺省为true。是否在開始重建索引前清除旧索引
- commit:缺省为true。是否提交操作请求
- debug:缺省为false。
debug模式,不会commit操作。
假设同一时候须要commit,得带上commit=true參数
- entity:缺省为全部的entity。能够指定某一个或多个entity
- optimize:缺省为true。是否须要在完毕操作后优化索引
- reload-config:假设改动了配置文件,运行这个命令使它生效
- status:返回各种统计数据、以及DIH的当前状态
Solr DataImportHandler 配置的更多相关文章
- Solr Dataimport配置
参考资料: https://cwiki.apache.org/confluence/display/solr/Uploading+Structured+Data+Store+Data+with+the ...
- 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连接数据库配置
一般要搜索的信息都是被存储在数据库里面的,但是我们不能直接搜数据库,所以只有借助Solr将要搜索的信息在搜索服务器上进行索引,然后在客户端供客户使用. 一.链接数据库 1. SQL配置 拿SQL Se ...
- 四、Solr数据源配置(JNDI、DIH)及定时重做索引
简介 Solr支持很多种创建索引的方式,包括网页,xml以及数据库,因为我这边做的是企业级的搜索,所以用的是数据库建立索引.其实从数据库建立索引,很大程度上取决于原来的数据库设计. 从数据库建立索引, ...
- [转]solr DataImportHandler 解决mysql 表导入内存溢出问题
最近一个项目要用到solr做全文检索,开始盲人摸象. 用tomcat 7 开始配置,开始正常,但是遇到cookie里有中文就报错. 无奈,换tomcat 6, 结果DataImportHandler ...
随机推荐
- Opencv 使用Rect选取与设置窗口ROI
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50593825 首先看一下Rect对象的 ...
- intellij idea 打开两个 terminal
intellij idea 打开两个 terminal alt+f12可以打开terminal,在terminal窗口左侧点击绿色的加号,就可以又打开一个terminal,用tab标签展示:
- Android.mk添加本地程序和库的经常使用模版
Android.mk添加本地程序和库的经常使用模版 Android中添加本地程序或者库.这些程序和库与其所在路径没有关系.仅仅与它们的配置文件Android.mk有关.Android.mk文件里可以主 ...
- ACM-ICPC Dhaka Regional 2012 题解
B: Uva: 12582 - Wedding of Sultan 给定一个字符串(仅由大写字母构成)一个字母表示一个地点,经过这个点或离开这个点都输出这个地点的字母) 问: 每一个地点经过的次数(维 ...
- 第十七章_Web注解
1.HandlesTypes 这个注解类型用来声明ServletContainerInitializer能够处理哪些类型的类.它有一个属性.一个值.用来声明类的类型.比如,以下的ServletCont ...
- 关于Javakeywordsynchronized——单例模式的思考
精彩的设计模式盛宴刚刚落下帷幕.三天的时间.真是学习到了非常多.当中,遗留的非常多的问题.今天就谈谈synchronized这个keyword.关于对synchronizedkeyword的思考是从单 ...
- JavaSE入门学习24:Java面向对象补充
一Java中的Object类 Object类是全部Java类的父类.假设一个类没有使用extendskeyword明白标识继承另外一个类,那么这个类默认 继承Object类. public class ...
- m-orchastration system
m-orchastration system 1.bootstrap上面有很多前台的页面代码可以用 2.H-ui里面的案例我可以去看看,这个网站也有后台框架 H-ui案例 - H-ui前端框架官方网站 ...
- netty底层是事件驱动的异步库 但是可以await或者sync(本质是future超时机制)同步返回 但是官方 Prefer addListener(GenericFutureListener) to await()
io.netty.channel 摘自:https://netty.io/4.0/api/io/netty/channel/ChannelFuture.html Interface ChannelFu ...
- MLPclassifier,MLP 多层感知器的的缩写(Multi-layer Perceptron)
先看代码(sklearn的示例代码): from sklearn.neural_network import MLPClassifier X = [[0., 0.], [1., 1.]] y = [0 ...