Solr vouliez-vous dire (vérifier l'Orthographe du composant)
- Je utiliser solr pour mes applications et je l'ai intégré la vérification orthographique composant, mais j'ai quelques problèmes :
Première :
Lorsque je tape un terme séparés par un espace qu'ils me donnent la correction pour chaque terme
Par exemple : "wat ters" => "ce terme" mais le vrai est watters
Deuxième :
Lorsque je tape une phrase avec quelques mauvais terme. même si les autres conditions sont correctes, ils appliquent le sort de tous les termes.
Par exemple : "Difreences dans lankuage utilisation des conventions"
=> "les Différences dans l'utilisation de la langue conversions".
Le vrai, c'est "les Différences dans l'utilisation de la langue des conventions"
C'est ma config dans solrconfig.xml :
<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
<str name="queryAnalyzerFieldType">textSpell</str>
<lst name="spellchecker">
<str name="name">default</str>
<str name="field">spell</str>
<str name="spellcheckIndexDir">spellchecker</str>
</lst>
</searchComponent>
<requestHandler name="/spell" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="spellcheck.onlyMorePopular">true</str>
<str name="spellcheck.extendedResults">false</str>
<str name="spellcheck.count">1</str>
</lst>
<arr name="last-components">
<str>spellcheck</str>
</arr>
</requestHandler>
Schema.xml :
Type de champ:
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="1" splitOnCaseChange="1"/>
<filter class="solr.ASCIIFoldingFilterFactory" />
<filter class="solr.SnowballPorterFilterFactory" language="English"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0"/>
<filter class="solr.ASCIIFoldingFilterFactory" />
<filter class="solr.SnowballPorterFilterFactory" language="English"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
</analyzer>
<analyzer type="multiterm" >
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory" />
</analyzer>
</fieldType>
<fieldType name="textSpell" class="solr.TextField" positionIncrementGap="100" omitNorms="true">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
<!--<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>-->
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
Champs :
<field name="title" type="text" indexed="true" stored="true" termVectors="true"/>
<field name="spell" type="textSpell" indexed="true" stored="true" multiValued="true"/>
Copie De Champs
<copyField source="title" dest="spell"/>
Je vous remercie de votre aide
Acclamations
- Bonne question...avez-vous des tutoriel que vous avez utilisé pour en savoir plus sur lucene...autres que la documentation officielle de Solr page? Ty
- Tutoriel de Base : Solr en 5 minutes, Apache Lucene guide de démarrage rapide. Avancé Tutoriel : Dzone Solr Tutoriel. Exemples : solr Drupal Drupal, Apache Solr pour WordPress, Solr Manuel Php. Bonne chance, j'espère que ça aide 😉
- des Livres : Lucene et Solr: The Definitive Guide, Apache Solr 4 livre de cuisine.
Vous devez vous connecter pour publier un commentaire.
Pour votre premier problème, vous pouvez utiliser WordBreakSpellChecker
Comme pour ton deuxième problème, vous pouvez définir
<str name="spellcheck.onlyMorePopular">true</str>
à<str name="spellcheck.onlyMorePopular">false</str>
et voir si cela a le résultat attendu.