情境:
在数据库中,我有一个名为 Categories 的字段,其字符串类型包含多个管道分隔的数字,例如1|8|90|130|
我想要的是什么:
在Solr索引中,我想要有两个字段:
1|8|90|130|
对于后者,在实体规范中我可以使用regexTransformer然后在data-config.xml中指定以下字段:
<field column="Categories" name="Navigation" splitBy="\|"/>
然后在schema.xml中将字段指定为多值
我不知道的是我如何“复制”相同的字段两次并仅在一个字段上执行正则表达式拆分。我知道有一个copyField
工具可以在schema.xml中定义但是我找不到一种方法来转换复制的字段,因为从我所知道的(我可能在这里错了),变换器只能在实体规范。
作为一种解决方法,我也可以从实体查询中发送两次相同的字段,但实际上,字段 Categories 是一个计算字段(选择嵌套),这有点贵,所以我想避免它
感谢任何帮助,谢谢。
答案 0 :(得分:1)
而不是将其拆分为data-config.xml
。您可以在schema.xml
中执行此操作。这是你能做的,
PatternTokenizerFactory
创建 fieldType ,使用正则表达式基于|
进行拆分。 multivalued
创建new fieldType
字段,最终将有1,8,90,130 检查此Question,它是类似的。
答案 1 :(得分:1)
您可以从同一数据创建两列并单独处理它们。
选择类别,类别为categories_pipe FROM category_table
然后你可以拆分“类别”列,但按原样索引另一个。