[
https://issues.apache.org/jira/browse/SOLR-13593?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16878294#comment-16878294
]
Tomoko Uchida commented on SOLR-13593:
--------------------------------------
I started playing with {{FieldTypePluginLoader}} and noticed that the "name"
attribute is reserved as Solr's plugin name. Instead of messing up the code, I
would like to introduce new attribute "spi" (there could be more appropriate
one?).
{code:xml}
<fieldtype name="myfieldtype" class="solr.TextField">
<analyzer>
<tokenizer spi="whitespace"/>
<filter spi="keywordMarker" protected="protwords.txt" />
<filter spi="porterStem" />
</analyzer>
</fieldtype>
{code}
Other than that, it seems straightforward to load the factories via the SPI
names - add a new method to {{AbstractPluginLoader}} to create the new plugin
instance by spi name, and override it in
{{FieldTypePluginLoader#readAnalyzer(Node)}}.
> Allow to specify analyzer components by their SPI names in schema definition
> ----------------------------------------------------------------------------
>
> Key: SOLR-13593
> URL: https://issues.apache.org/jira/browse/SOLR-13593
> Project: Solr
> Issue Type: Improvement
> Security Level: Public(Default Security Level. Issues are Public)
> Components: Schema and Analysis
> Reporter: Tomoko Uchida
> Priority: Major
>
> Now each analysis factory has explicitely documented SPI name which is stored
> in the static "NAME" field (LUCENE-8778).
> Solr uses factories' simple class name in schema definition (like
> class="solr.WhitespaceTokenizerFactory"), but we should be able to also use
> more concise SPI names (like name="whitespace").
> e.g.:
> {code:xml}
> <fieldtype name="myfieldtype" class="solr.TextField">
> <analyzer>
> <tokenizer class="solr.WhitespaceTokenizerFactory"/>
> <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"
> />
> <filter class="solr.PorterStemFilterFactory" />
> </analyzer>
> </fieldtype>
> {code}
> would be
> {code:xml}
> <fieldtype name="myfieldtype" class="solr.TextField">
> <analyzer>
> <tokenizer name="whitespace"/>
> <filter name="keywordMarker" protected="protwords.txt" />
> <filter name="porterStem" />
> </analyzer>
> </fieldtype>
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]