使用SOLR和DataImportHandler,我们已经索引了我们的数据库。数据库有一个字段,其中包含该行的连接属性数据。我们在data-config.xml文件中使用转换器来读取该字段并将其拆分为多个动态字段。
我们使用此数据作为方面进行搜索。
我们可以将字段的某些作为facet进行搜索,并且它可以正常工作,但是,某些字段无法进行构面搜索(例如fq = attr_fieldname:“facetval”)。搜索时,它们返回“HTTP Status 400 - undefined field Type”或“HTTP Status 400 - undefined field Length”
我们可以看到在查看架构浏览器时创建了动态字段,因此没有关于字段名称是否正确的问题。
在我们的schema.xml中,动态字段被定义为不允许多值的字符串类型。
关于导致这种情况的原因,或者我们可以采取哪些措施来阻止它?
谢谢!
UPDATE --- 这是我们正在使用的动态字段定义:
<dynamicField name="attr_*" type="string" indexed="true" stored="false" multiValued="false"/>
更新2 --- 是否有人知道由动态字段引起的问题最终会被命名为“attr_type”或“attr_length”? 根据其中一条评论,有人建议我们可能会将“长度”或“类型”作为字段名称发送。我们不这样做,但我们发送“attr_length”或“attr_type”