托管架构中不区分大小写的Solr字段



我有一个字段使用字符串类型,我希望它不标记化和不区分大小写。我知道使用字符串字段类型并添加LowerCaseFilterFactory过滤器,但我如何在无架构模式下做到这一点?

在"无架构"模式下执行此操作没有什么不同-您使用架构API来配置架构,或者如果只有一个节点,则可以手动编辑托管架构。

但是您不能将筛选器附加到字符串字段,因此必须将字段更改为以TextField为基础的字段类型,然后让它使用KeywordTokenizer作为其标记器,并将筛选器应用于结果。KeywordTokenizer将输入字符串保持为单个令牌,然后由过滤器将其小写,结果与附加过滤器的字符串字段相同。

您可以通过调用模式端点上的add-field-type命令,通过Schema API添加新的字段类型:

curl -X POST -H 'Content-type:application/json' --data-binary '{
"add-field-type" : {
"name":"myNewTxtField",
"class":"solr.TextField",
"positionIncrementGap":"100",
"analyzer":{
"tokenizer":{
"class":"solr.KeywordTokenizerFactory" 
}
"filters":[{
"class":"solr.LowercaseFilterFactory"
}]
}
}
}' http://localhost:8983/solr/gettingstarted/schema

最新更新