Witajcie
Mam następujący problem - w jaki sposób połączyć filtrowanie wyników (parametr fq=pole:wartosc) z podpowiedziami zrealizowanymi na bazie solr.SpellCheckComponent ? Chodzi o to, aby zwracane przez Solra podpowiedzi brały pod uwagę nałożony filtr(y) fq.
Konfiguracja solrconfig.xml (tylko część konfiguracyjna spellcheckera):
<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
<lst name="spellchecker">
<str name="name">default</str>
<str name="classname">solr.IndexBasedSpellChecker</str>
<str name="field">spellchecker</str>
<str name="spellcheckIndexDir">./spellchecker</str>
<str name="accuracy">0.2</str>
<!--<float name="threshold">0.05</float>-->
<str name="buildOnCommit">true</str>
<float name="thresholdTokenFrequency">.0001</float>
</lst>
<str name="queryAnalyzerFieldType">spellchecker</str>
</searchComponent>
<requestHandler name="standard" class="solr.StandardRequestHandler" default="true">
<lst name="defaults">
<str name="spellcheck.dictionary">default</str>
<str name="spellcheck.onlyMorePopular">false</str>
<str name="spellcheck.extendedResults">false</str>
<str name="spellcheck.count">10</str>
</lst>
<arr name="last-components">
<str>spellcheck</str>
</arr>
</requestHandler>
Fragment konfiguracji schema.xml:
<!-- -->
<fieldType name="text_shingle" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ShingleFilterFactory" maxShingleSize="6" outputUnigrams="true"/>
</analyzer>
</fieldType>
<!-- -->
<fieldType name="spellchecker" class="solr.TextField" positionIncrementGap="100" omitNorms="true">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.TrimFilterFactory" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>
<!-- -->
<field name="shop" type="text_shingle" indexed="true" stored="true" required="true"/>
<field name="spellchecker" type="spellchecker" indexed="true" stored="false" multiValued="true"/>
<!-- -->
<copyField source="shop" dest="spellchecker"/>
<!-- -->
Znalazłem jedynie niepokojące
info, że się nie da. Może ktoś spotkał się z takim problemem i go rozwiązał?
//edit
Query, które leci do Solra dla frazy "ob":
http://localhost:8983/solr/de/select/?q=ob...;facet.field=id//edit2
wszelkie zabawy z parametrami collation również nie dają oczekiwanego rezultatu.
Ten post edytował darko 31.08.2012, 17:38:38
Nie pomagam na pw, tylko forum.