SOLR中的自定义字段类

时间:2014-12-30 12:13:21

标签: solr

SOLR允许使用以下设置定义字段类型:

<fieldtype name= "text_th" class = "solr.TextField" />

这里的类是一个内置的SOLR类。我们是否允许定义自己的类并在fieldType定义中使用它?我想有一个类如 MyCompany.MyClass {     字符串名称,     年龄,     浮动工资 }

这样我在SOLR文档中存储的值是由3个组件组成的复合值。 如果允许这样做,是否有针对此类的任何指导或定义的实践,例如如何为这样的自定义类开发标记化器等?

谢谢,

佳日

1 个答案:

答案 0 :(得分:3)

是的,您可以创建自己的FieldType - 但是应该有非常具体的理由这样做。 Solr后端是Lucene,所以它自己负责在Solr表示和后备Lucene实现之间编组内容。

可能的起点可能是the implementation of StrField in Solr(这只是Lucene中的一个简单字段),或更高级的示例,例如LatLonTypePointField

请注意,创建新字段类型的原因应该是表达当前可用字段类型无法实现的内容(或大大简化此类值的处理)。请记住,您可能不得不关注排序应该如何工作,过滤应该如何工作等等,以及所有这些项的语法。

通常,您可以通过创建单独的集合或以多种方式索引内容来改善(以及实际可维护的解决方案)。自定义字段类型(在Lucene / Solr级别上)几乎不是答案。