当 creating/replacing 一种新的字段类型时,只添加一个分词器过滤器
Only one tokenizer filter is added when creating/replacing a new field type
我正在使用 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>
问题是实际上只添加了最后一个分词器过滤器。我真的不明白为什么会这样。我尝试更改分词器 class 但仍然得到相同的结果。
任何帮助将不胜感激。
过滤器数组应该是这样的
"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
我正在使用 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>
问题是实际上只添加了最后一个分词器过滤器。我真的不明白为什么会这样。我尝试更改分词器 class 但仍然得到相同的结果。
任何帮助将不胜感激。
过滤器数组应该是这样的
"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