solr中filelistentityprocessor处理器怎么生成<field >

 我来答
匿名用户
2016-06-24
展开全部
以下资料整理自网络,以及查看solr帮助文档。主要分为两部分,第一部分是对《db-data-config.xml》的配置内容的讲解(属于高级内容),第二部分是DataImportHandler(属于基础),第三部分是对db-data-config.xml的进阶  第一部分是对《db-data-config.xml》  query是获取全部数据的SQLdeltaImportQuery是获取增量数据时使用的SQLdeltaQuery是获取pk的SQLparentDeltaQuery是获取父Entity的pk的SQL    FullImport工作原理:执行本Entity的Query,获取所有数据;针对每个行数据Row,获取pk,组装子Entity的Query;执行子Entity的Query,获取子Entity的数据。    DeltaImport工作原理:查找子Entity,直到没有为止;执行Entity的deltaQuery,获取变化数据的pk;合并子EntityparentDeltaQuery得到的pk;针对每一个pkRow,组装父Entity的parentDeltaQuery;执行parentDeltaQuery,获取父Entity的pk;执行deltaImportQuery,获取自身的数据;如果没有deltaImportQuery,就组装Query    限制:子Entity的query必须引用父Entity的pk子Entity的parentDeltaQuery必须引用自己的pk子Entity的parentDeltaQuery必须返回父Entity的pkdeltaImportQuery引用的必须是自己的pk    第二部分是DataImportHandler  关于DataImportHandler的具体使用方法,详见下文,如果你英文超级好,那看这个链接吧:dataimport  使用“完全导入”命令将数据从数据库中导出,并提交给solr建立索引  使用“增量导入”命令对数据库发生的变化的数据导出,并提交给solr建立索引。  配置数据源  将dataSource标签直接添加到dataConfig下面,即成为dataConfig的子元素.        数据源也可以配置在solrconfig.xml中  属性type指定了实现的类型。它是可选的。默认的实现是JdbcDataSource。  属性name是datasources的名字,当有多个datasources时,可以使用name属性加以区分  其他的属性都是随意的,根据你使用的DataSource实现而定。  当然你也可以实现自己的DataSource。  多数据源  一个配置文件可以配置多个数据源。增加一个dataSource元素就可以增加一个数据源了。name属性可以区分不同的数据源。如果配置了多于一个的数据源,那么要注意将name配置成唯一的。  例如:  然后这样使用........  配置JdbcDataSourceJdbcDataSource中的属性有  driver(必需的):jdbc驱动名称  url(必需的):jdbc链接  user:用户名  password:密码  批量大小:jdbc链接中的批量大小  任何其他的在JdbcDataSource中配置的属性,都会被直接传给jdbcdriver  配置data-config.xml  solrdocument是schema,它的域上的值可能来自于多个表.  data-config.xml的根元素是document。一个document元素代表了一种文档。一个document元素中包含了一个或者多个root实体。一个root实体包含着一些子实体,这些子实体能够包含其他的实体。实体就是,关系数据库上的表或者视图。每个实体都能够包含多个域,每个域对应着数据库返回结果中的一列。域的名字跟列的名字默认是一样的。如果一个列的名字跟solrfield的名字不一样,那么属性name就应该要给出。其他的需要的属性在solrschema.xml文件中配置。  为了能够从数据库中取得想要的数据,我们的设计支持标准sql规范。这使得用户能够使用他任何想要的sql语句。root实体是一个中心表,使用它的列可以把表连接在一起。  dataconfig的结构  dataconfig的结构不是一成不变的,entity和field元素中的属性是随意的,这主要取决于processor和transformer。  以下是entity的默认属性  name(必需的):name是唯一的,用以标识entity  processor:只有当datasource不是RDBMS时才是必需的。默认值是SqlEntityProcessor  transformer:转换器将会被应用到这个entity上,详情请浏览transformer部分。  pk:entity的主键,它是可选的,但使用“增量导入”的时候是必需。它跟schema.xml中定义的uniqueKey没有必然的联系,但它们可以相同。  rootEntity:默认情况下,document元素下就是根实体了,如果没有根实体的话,直接在实体下面的实体将会被看做跟实体。对于根实体对应的数据库中返回的数据的每一行,solr都将生成一个document。  一下是SqlEntityProcessor的属性  query(required):sql语句  deltaQuery:只在“增量导入”中使用  parentDeltaQuery:只在“增量导入”中使用  deletedPkQuery:只在“增量导入”中使用  deltaImportQuery:(只在“增量导入”中使用).如果这个存在,那么它将会在“增量导入”中导入phase时代替query产生作用。这里有一个命名空间的用法${dataimporter.delta.}详情请看solr1.4.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式