索引器配置
最基本的索引器配置只需要表名和单个字段。但是,可以在索引器配置文件中使用许多配置设置来自定义行为。
<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。两者都是强制性的