Hbase Indexer索引器的配置

索引器配置

 

最基本的索引器配置只需要表名和单个字段。但是,可以在索引器配置文件中使用许多配置设置来自定义行为。

<indexer table="mytable">

  <field name="fieldname" value="columnfamily:qualifier" type="string"/>

</indexer>

全局索引器属性

以下是可以在索引器配置中的顶级<indexer>元素上设置的属性列表。

table属性指定索引器要索引的HBase表的名称。它是索引器元素中唯一的必需属性

映射型

 

mapping-type属性有两个可能的值:row或column。此属性指定是要执行基于行的索引还是基于列的索引。

基于行的索引将单个HBase行中的所有数据视为Solr中单个文档的输入。这种索引将用于HBase表,该表在每行中包含一个单独的实体,例如包含用户的表

基于列的索引将每个HBase单元视为Solr中单个文档的输入。该方法可以用于例如消息传送平台中,其中单个用户的消息全部存储在单个行中,每个消息存储在单独的单元中。

默认的映射类型值是row。

读行

read-row属性有两个可能的值:dynamic或never。只有在使用基于行的索引时,此属性才有用它指定索引器是否应重新读取HBase中的数据以执行索引

设置为“dynamic”时,如果在HBase中执行对行的部分更新,则索引器将从行中读取必要的数据。在动态模式下,如果行更新中包含执行索引所需的所有数据,则不会重新读取该行。

如果此属性设置为never,则索引器将永远不会重新读取行。

默认设置为“动态”。

映射器

mapper属性允许用户指定一个自定义映射器类,该类将从HBase Result对象创建Solr文档。mapper类必须实现该com.ngdata.hbaseindexer.parse.ResultToSolrMapper接口。

默认情况下,使用内置com.ngdata.hbaseindexer.parse.DefaultResultToSolrMapper。

独特琴键格式化

 

unique-key-formatter属性指定用于将HBase行键(以及列族和列限定符)格式化为文本的类的名称。Solr中需要索引这些信息的文本表示,因为Solr中的所有数据都是文本的,但行键,列族和列限定符是字节数组。

unique-key-formatter类必须实现该com.ngdata.hbaseindexer.uniquekey.UniqueKeyFormatter接口。此属性的默认值为com.ngdata.hbaseindexer.uniquekey.StringUniqueKeyFormatter。

StringUniqueKey格式化程序只是将行键和其他字节数组视为字符串。如果您的行键,列族或限定符不能简单地用作字符串,请考虑使用com.ngdata.hbaseindexer.uniquekey.HexUniqueKeyFormatter。

唯一键字段

此属性指定Solr中使用的文档标识符字段的名称。该字段的默认值为“id”。

行场

row-field属性指定用于存储HBase行键的Solr字段的名称。

此字段仅在执行基于列的索引时很重要。为了使索引器能够从索引中删除单行的所有文档,它需要能够在Solr中找到该行的所有文档。在索引器定义中填充此属性时,它的值将用作Solr中用于存储编码行键的字段的名称。

默认情况下,此属性为空,表示行键未存储在Solr中。这样做的结果是删除HBase中的完整行或完整列族不会删除Solr中的索引文档。

列家族场

column-family-field指定用于存储HBase列系列名称的Solr字段的名称。默认情况下,此属性为空,因此列族名称不会保存在Solr中。

表名,字段

table-name-field指定Solr字段的名称,该字段用于存储存储记录的HBase表的名称

默认情况下,此属性为空,因此除非在索引器配置中显式设置此设置,否则不会存储HBase表的名称。

 

索引器定义中的元素

可以在索引器配置中使用三种类型的元素:<field>,<extract>和<param>。

<field>

field元素定义要在Solr中索引的单个字段,以及从HBase获取和解释其内容的位置。索引器配置中通常会列出一个或多个字段 - 每个字段用于存储每个Solr字段。

field属性有四个属性,如下所示。

 

名称

 

name属性指定用于存储数据的Solr字段的名称。应在Solr模式中定义具有匹配名称的字段。name属性是必需的。

 

 

value属性指定要从HBase中使用的数据,以填充Solr中的字段。它采用列族名称和限定符的形式,用冒号分隔。

限定符部分可以以星号结尾,星号被解释为通配符。在这种情况下,将使用所有匹配的列族和限定符表达式。

 

以下是有效值属性的示例:

mycolumnfamily:myqualifier

mycolumnfamily:我*

mycolumnfamily:*

 

资源

source属性确定HBase KeyValue的哪个部分将用作索引内容。

 

它有两个可能的值:值和限定符。

指定值时(默认情况下是这种情况),单元格值将用作索引的输入。

指定限定符时,列限定符将用作索引的输入。

 

类型

type属性定义HBase中内容的数据类型。

因为所有数据都作为字节数组存储在HBase中,但Solr中的所有内容都被索引为文本,因此需要一种从字节数组转换为实际数据类型的方法。

此字段的值可以是HBase Bytes类支持的任何数据类型之一:int,long,string,boolean,float,double,short或bigdecimal。

 

<PARAM>

       

<param>元素定义了一个键值对,它将提供给实现该com.ngdata.hbaseindexer.Configurable接口的自定义类。

 

<param>元素也可以嵌套在<field>元素中。

 

该元素有两个属性:name和value。两者都是强制性的

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值