我将系统从使用Solr 1.4移动到Solr 6.x(或可能的5.x),并且字段名称都包含冒号(例如" rdf:type")。我使用schema.xml文件将所有配置文件转换为Solr 6.x版本。我可以看到" rdf:type"在Solr的架构视图中。
这些字段名在1.4中运行良好但现在冒号在尝试索引时会自动转换为下划线。
例如,使用Solr的内置界面,如果我尝试提交一个简单的文档,如:
{'rdf:type': 'http://purl.org/ontology/bibo/Note'}
我收到一条错误消息:
错误:[doc = 682e3f70-a4bc-4336-9f69-e7d620fe5fff]未知字段' rdf_type'
是否可以关闭"此功能?使用冒号会导致最新版本的Solr出现问题吗?
(侧面说明,制作" rdf:输入"强制字段然后不包括它会导致错误,其中显示:"缺少必填字段:rdf:type",ie它显示正确的名称)
答案 0 :(得分:2)
这种行为不是Solr本身的“本机”,而是默认更新处理器链的一部分,它被添加到捆绑示例中的Schemaless模式的配置中(这是默认设置)。
原因是lucene使用:
将字段名称与要在这些字段中查询的值分开,因此通常更容易将:
保留在字段名称之外。
您可以通过从更新链中删除FieldNameMutatingUpdateProcessorFactory
来更改此设置,或使用您自己的架构(不使用更新处理器链)。