我有一个字段使用字符串类型,我希望它不是tokenizer和不区分大小写。我知道使用字符串字段类型并添加LowerCaseFilterFactory
过滤器,但我怎样才能在无模式模式下执行此操作?
答案 0 :(得分:0)
在“无模式”模式下执行此操作没有什么不同 - 您use the Schema API可以配置您的架构,或者如果您只有一个节点,可以手动编辑托管架构。
但是您无法将过滤器附加到字符串字段,因此必须将该字段更改为以TextField为基础的字段类型,然后让它使用KeywordTokenizer
作为其标记生成器并应用过滤到结果。 KeywordTokenizer将输入字符串保存为单个标记,然后由过滤器将其设置为小写 - 结果与使用附加过滤器的字符串字段的结果相同。
您可以通过invoking the add-field-type
command on the schema endpoint:
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