Hello,
I have Solr 4 configured with several fields using different similarity
classes according to:
http://wiki.apache.org/solr/SchemaXml#Similarity
However, I get this error message:
" FieldType 'DFR' is configured with a similarity, but the global
similarity does not support it: class
org.apache.solr.search.similarities.DefaultSimilarityFactory"
Excerpt from schema.xml below.
What I am trying to do is have any field that doesn't specify a similarity
to use the default, but to set up 3 specific fields to use the DFR, IB, and
BM25 similarities respectively.
I think I'm missing something here. Can someone point me to documentation
or examples?
Tom
----------------
Simplified schema.xml excerpt:
<fieldType name="CJKFullText" class="solr.TextField"
positionIncrementGap="100" autoGeneratePhraseQueries="false">
<analyzer type="index">
<tokenizer class="solr.ICUTokenizerFactory"/>
<filter class="solr.ICUFoldingFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.ICUTokenizerFactory"/>
<filter class="solr.ICUFoldingFilterFactory"/>
</analyzer>
</fieldType>
<!--###########################################################-->
<!-- relevance rank testing -->
<fieldType name="DFR" class="solr.TextField" positionIncrementGap="100"
autoGeneratePhraseQueries="false">
<analyzer type="index">
<tokenizer class="solr.ICUTokenizerFactory"/>
<filter class="solr.ICUFoldingFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.ICUTokenizerFactory"/>
<filter class="solr.ICUFoldingFilterFactory"/>
</analyzer>
<similarity class="solr.DFRSimilarityFactory">
<str name="basicModel">I(F)</str>
<str name="afterEffect">B</str>
<str name="normalization">H2</str>
</similarity>
</fieldType>
<fieldType name="IB" class="solr.TextField" positionIncrementGap="100"
autoGeneratePhraseQueries="false">
<analyzer type="index">
<tokenizer class="solr.ICUTokenizerFactory"/>
<filter class="solr.ICUFoldingFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.ICUTokenizerFactory"/>
<filter class="solr.ICUFoldingFilterFactory"/>
</analyzer>
<similarity class="solr.IBSimilarityFactory">
<str name="distribution">SPL</str>
<str name="lambda">DF</str>
<str name="normalization">H2</str>
</similarity>
</fieldType>
<fieldType name="BM25" class="solr.TextField" positionIncrementGap="100"
autoGeneratePhraseQueries="false">
<analyzer type="index">
<tokenizer class="solr.ICUTokenizerFactory"/>
<filter class="solr.ICUFoldingFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.ICUTokenizerFactory"/>
<filter class="solr.ICUFoldingFilterFactory"/>
</analyzer>
<similarity class="solr.BM25SimilarityFactory">
<!-- start with the defaults -->
<float name="k1">1.2</float>
<float name="b">0.75</float>
</similarity>
</fieldType>
=======================================================================================-
Excerpt from actual schema.xml
<fieldType name="CJKFullText" class="solr.TextField"
positionIncrementGap="100" autoGeneratePhraseQueries="false">
<analyzer type="index">
<tokenizer class="solr.ICUTokenizerFactory"/>
<filter class="solr.ICUFoldingFilterFactory"/>
<filter class="solr.CJKBigramFilterFactory"
han="true" hiragana="true"
katakana="false" hangul="false" />
<filter class="solr.CommonGramsFilterFactory"
words="1000common.txt" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.ICUTokenizerFactory"/>
<filter class="solr.ICUFoldingFilterFactory"/>
<filter class="solr.CJKBigramFilterFactory"
han="true" hiragana="true"
katakana="false" hangul="false" />
<filter class="solr.CommonGramsQueryFilterFactory"
words="1000common.txt" />
</analyzer>
</fieldType>
<!--###########################################################-->
<!-- relevance rank testing -->
<fieldType name="DFR" class="solr.TextField" positionIncrementGap="100"
autoGeneratePhraseQueries="false">
<analyzer type="index">
<tokenizer class="solr.ICUTokenizerFactory"/>
<filter class="solr.ICUFoldingFilterFactory"/>
<filter class="solr.CJKBigramFilterFactory"
han="true" hiragana="true"
katakana="false" hangul="false" />
<filter class="solr.CommonGramsFilterFactory"
words="1000common.txt" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.ICUTokenizerFactory"/>
<filter class="solr.ICUFoldingFilterFactory"/>
<filter class="solr.CJKBigramFilterFactory"
han="true" hiragana="true"
katakana="false" hangul="false" />
<filter class="solr.CommonGramsQueryFilterFactory"
words="1000common.txt" />
</analyzer>
<similarity class="solr.DFRSimilarityFactory">
<str name="basicModel">I(F)</str>
<str name="afterEffect">B</str>
<str name="normalization">H2</str>
</similarity>
</fieldType>
<fieldType name="IB" class="solr.TextField" positionIncrementGap="100"
autoGeneratePhraseQueries="false">
<analyzer type="index">
<tokenizer class="solr.ICUTokenizerFactory"/>
<filter class="solr.ICUFoldingFilterFactory"/>
<filter class="solr.CJKBigramFilterFactory"
han="true" hiragana="true"
katakana="false" hangul="false" />
<filter class="solr.CommonGramsFilterFactory"
words="1000common.txt" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.ICUTokenizerFactory"/>
<filter class="solr.ICUFoldingFilterFactory"/>
<filter class="solr.CJKBigramFilterFactory"
han="true" hiragana="true"
katakana="false" hangul="false" />
<filter class="solr.CommonGramsQueryFilterFactory"
words="1000common.txt" />
</analyzer>
<similarity class="solr.IBSimilarityFactory">
<str name="distribution">SPL</str>
<str name="lambda">DF</str>
<str name="normalization">H2</str>
</similarity>
</fieldType>
<fieldType name="BM25" class="solr.TextField" positionIncrementGap="100"
autoGeneratePhraseQueries="false">
<analyzer type="index">
<tokenizer class="solr.ICUTokenizerFactory"/>
<filter class="solr.ICUFoldingFilterFactory"/>
<filter class="solr.CJKBigramFilterFactory"
han="true" hiragana="true"
katakana="false" hangul="false" />
<filter class="solr.CommonGramsFilterFactory"
words="1000common.txt" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.ICUTokenizerFactory"/>
<filter class="solr.ICUFoldingFilterFactory"/>
<filter class="solr.CJKBigramFilterFactory"
han="true" hiragana="true"
katakana="false" hangul="false" />
<filter class="solr.CommonGramsQueryFilterFactory"
words="1000common.txt" />
</analyzer>
<similarity class="solr.BM25SimilarityFactory">
<!-- start with the defaults -->
<float name="k1">1.2</float>
<float name="b">0.75</float>
</similarity>
</fieldType>