i wish have field copied, , in copy apply 1 additional analyzer it. while know how make copy (<copyfield source="source" dest="dest") want run different analyzer on copy (asciifoldingfilterfactory).
how can change type of copyfield can run additional analyzer?
need change type, or can run additional analyzer?
i belive can sort of hack using dynamic field match copy field name, , change type way, won't create copy of data?
you need define new fieldtype , declare copyfield of type.
for example, below text_syn type applies set of analyzers , text_stop_syn_stem type, has more analyzers (for stop word removal , stemming):
<types> ... <fieldtype name="text_syn" class="solr.textfield" positionincrementgap="100"> <analyzer type="index"> <tokenizer class="solr.whitespacetokenizerfactory"/> <filter class="solr.worddelimiterfilterfactory" preserveoriginal="1" generatewordparts="1" generatenumberparts="1" catenatewords="1" catenatenumbers="0" catenateall="1" splitoncasechange="1"/> <filter class="solr.synonymfilterfactory" synonyms="synonyms.txt" ignorecase="true" expand="true"/> <filter class="solr.lowercasefilterfactory"/> <filter class="solr.removeduplicatestokenfilterfactory"/> <filter class="solr.asciifoldingfilterfactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.whitespacetokenizerfactory"/> <filter class="solr.worddelimiterfilterfactory" preserveoriginal="1" generatewordparts="1" generatenumberparts="1" catenatewords="0" catenatenumbers="0" catenateall="0" splitoncasechange="0"/> <filter class="solr.lowercasefilterfactory"/> <filter class="solr.removeduplicatestokenfilterfactory"/> <filter class="solr.asciifoldingfilterfactory"/> </analyzer> </fieldtype> <fieldtype name="text_stop_syn_stem" class="solr.textfield" positionincrementgap="100"> <analyzer type="index"> <tokenizer class="solr.whitespacetokenizerfactory"/> <filter class="solr.worddelimiterfilterfactory" preserveoriginal="1" generatewordparts="1" generatenumberparts="1" catenatewords="1" catenatenumbers="0" catenateall="1" splitoncasechange="1"/> <filter class="solr.lowercasefilterfactory"/> <filter class="solr.stopfilterfactory" words="stopwords.txt" ignorecase="true"/> <filter class="solr.synonymfilterfactory" synonyms="synonyms.txt" ignorecase="true" expand="true"/> <filter class="solr.porterstemfilterfactory"/> <filter class="solr.removeduplicatestokenfilterfactory"/> <filter class="solr.asciifoldingfilterfactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.whitespacetokenizerfactory"/> <filter class="solr.worddelimiterfilterfactory" preserveoriginal="1" generatewordparts="1" generatenumberparts="1" catenatewords="0" catenatenumbers="0" catenateall="0" splitoncasechange="0"/> <filter class="solr.lowercasefilterfactory"/> <filter class="solr.stopfilterfactory" words="stopwords.txt" ignorecase="true"/> <filter class="solr.porterstemfilterfactory"/> <filter class="solr.removeduplicatestokenfilterfactory"/> <filter class="solr.asciifoldingfilterfactory"/> </analyzer> </fieldtype> ... </types> under fields got:
<field name="name_syn" type="text_syn" indexed="true" stored="true" /> <field name="name_stop_syn_stem" type="text_stop_syn_stem" indexed="true" stored="false" /> and copyfield like:
<copyfield source="name_syn" dest="name_stop_syn_stem" />
Comments
Post a Comment