5 votes

Comment utiliser SynonymFilterFactory dans Solr ?

J'essaie d'exécuter le filtrage des synonymes au moment de la requête, de sorte que si je recherche X, les résultats pour Y s'affichent également.

Je vais à l'endroit où Solr est exécuté, je modifie le fichier .txt et j'ajoute X, Y sur une nouvelle ligne.

Cela ne fonctionne pas. Je vérifie le schéma et je vois :

<analyzer type="query">
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" />

Qu'est-ce que je rate ?

EDITAR Évaluation des fichiers de configuration

tomcat6/Catalina/localhost semble pointer vers le bon endroit

<Context docBase="/data/solr/solr.war" debug="0" privileged="true" allowLinking="true" crossContext="true">
  <Environment name="solr/home" type="java.lang.String" value="/data/solr" override="true" />
</Context>

En outre, dans l'administration de Solr, je vois ceci. Que signifie cwd ?

cwd=/usr/share/tomcat6 SolrHome=/data/solr/

2voto

Walter Underwood Points 943

Utilisez le SynonymFilterFactory uniquement au moment de l'index, et non au moment de la requête. Il existe quelques problèmes subtils mais bien compris avec les synonymes au moment de la requête.

Voir : http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.SynonymFilterFactory

Après avoir déplacé les synonymes vers la chaîne d'analyse de l'index, vérifiez qu'ils fonctionnent à l'aide de la page Analyse de l'interface d'administration.

1voto

mlissner Points 2158

La réponse de @Walter Underwood est bonne, mais incomplète.

Si vous utilisez le SynonymFilterFactory au moment de l'index ou de la requête. dépend de votre opérateur par défaut .

Donc, disons que nous avons un fichier de synonymes avec cette entrée :

5,five

Si votre opérateur par défaut est OR (qui est l'opérateur par défaut), alors vous devez configurer vos synonymes sur le fichier requête filtre. Ainsi, une requête pour "5" sera transmise au backend comme une requête pour "5" OU "five", par exemple, et le backend répondra de manière appropriée. En même temps, vous pouvez apporter des modifications à votre fichier de synonymes sans réindexer, et votre index est plus petit puisqu'il n'a pas besoin de contenir autant de tokens.

Cependant, si vous changez l'opérateur par défaut en AND vous devez configurer vos synonymes sur le site Web de la Commission européenne. indice à la place. Si vous ne le faites pas, une requête pour "5" sera envoyée au backend sous la forme "5" AND "five", et ne correspondra pas aux documents pour lesquels elle est prévue. Hélas, cela fait grossir l'index et signifie également que les nouveaux synonymes nécessitent des réindexations complètes.

Remarque : Le la documentation pour ce est actuellement erronée, laissant de côté tous ces détails.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X