J'utilise Solr par le biais de la gemme sunspot_rails v1.2.
Dans mon fichier schema.xml, j'ai ce qui suit :
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" catenateWords="1" preserveOriginal="1"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="50" side="front"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" preserveOriginal="1"/>
</analyzer>
</fieldType>
Si j'indexe la chaîne firstname.lastname@example.com
Je peux le trouver si je cherche example.com
mais pas si je cherche firstname.lastname
.
Si je retire WordDelimiterFilterFactory
à partir des paramètres de la requête, alors je peux l'email en recherchant pour firstname.lastname
Cependant, rien ne s'affiche lorsque je recherche example.com
.
Comment puis-je modifier le fichier de configuration pour pouvoir effectuer une recherche par l'un ou l'autre de ces moyens ?