我正在使用Curl添加我的字段类型:
curl -X POST -H 'Content-type:application/json' --data-binary '{
"add-field-type" : {
"name":"valueWithSubFields",
"class":"solr.TextField",
"positionIncrementGap":"100",
"indexAnalyzer":{
"tokenizer": { "class":"solr.KeywordTokenizerFactory" },
"filters": [{ "class":"solr.LowerCaseFilterFactory"}],
"filters": [{ "class":"solr.ASCIIFoldingFilterFactory" }],
"filters": [{ "class":"solr.ReversedWildcardFilterFactory" }]
},
"queryAnalyzer": {
"tokenizer": { "class":"solr.KeywordTokenizerFactory" },
"filters": [{ "class":"solr.LowerCaseFilterFactory" }],
"filters": [{ "class":"solr.ASCIIFoldingFilterFactory" }]
}
}
}' http://localhost:8983/solr/myMainCore/schema
这是我创建的字段类型
<fieldType name="valueWithSubFields" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.ReversedWildcardFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
</analyzer>
</fieldType>
问题是实际上只添加了最后一个标记生成器过滤器。我真的不明白为什么会这样。我试图更改我的tokenizer类但仍然得到相同的结果。
非常感谢任何帮助。
答案 0 :(得分:1)
过滤器数组应该是这样的
"filters": [
{
"class":"solr.LowerCaseFilterFactory"
},
{
"class":"solr.ASCIIFoldingFilterFactory"
},
{
"class":"solr.ReversedWildcardFilterFactory"
}
],
并且完整的curl命令将是
curl -X POST -H 'Content-type:application/json' --data-binary '{
"add-field-type" : {
"name":"valueWithSubFields",
"class":"solr.TextField",
"positionIncrementGap":"100",
"indexAnalyzer":{
"tokenizer": { "class":"solr.KeywordTokenizerFactory" },
"filters": [
{
"class":"solr.LowerCaseFilterFactory"
},
{
"class":"solr.ASCIIFoldingFilterFactory"
},
{
"class":"solr.ReversedWildcardFilterFactory"
}
]
},
"queryAnalyzer": {
"tokenizer": { "class":"solr.KeywordTokenizerFactory" },
"filters": [
{
"class":"solr.LowerCaseFilterFactory"
},
{
"class":"solr.ASCIIFoldingFilterFactory"
}
]
}
}
}' http://localhost:8983/solr/myMainCore/schema