You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Shamik Bandopadhyay <sh...@gmail.com> on 2014/05/29 04:34:34 UTC

Problem with French stopword filter

Hi,

  I'm having issues with French stop filter factory. Search doesn't work
when I use a stop word in a phrase search. For e.g. if I search arc de
cercle , Solr doesn't return any result. It however works if I use arc
cercle. Here's my schema setting :

<field name="title_fra" type="adsktext_fra" indexed="true" stored="true"
multiValued="true"/>
<field name="name_fra" type="adsktext_fra" indexed="true" stored="true"/>
<field name="description_fra" type="adsktext_fra" indexed="true"
stored="true"/>


<fieldType name="adsktext_fra" class="solr.TextField"
positionIncrementGap="100" autoGeneratePhraseQueries="true">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="lang/stopwords_fr.txt" format="snowball" />
<filter class="solr.ElisionFilterFactory" ignoreCase="true"
articles="lang/contractions_fr.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1"
generateNumberParts="1" catenateWords="1" catenateNumbers="1"
catenateAll="0" splitOnCaseChange="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.FrenchLightStemFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="lang/stopwords_fr.txt" format="snowball" />
<filter class="solr.ElisionFilterFactory" ignoreCase="true"
articles="lang/contractions_fr.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1"
generateNumberParts="1" catenateWords="1" catenateNumbers="1"
catenateAll="0" splitOnCaseChange="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.FrenchLightStemFilterFactory"/>
</analyzer>
</fieldType>

Sample data
==========

<doc>
  <field name="id">999911!SOLR11091</field>
  <field name="name_fra">Fast server Enterprise</field>
  <field name="title_fra">ARC (commande)</field>
   <field name="description_fra">Crée un arc de cercle. Trouver Résumé Pour
créer un arc, vous pouvez également indiquer des combinaisons comprenant le
centre, l'extrémité, le point de départ, le rayon, l'angle, la longueur de
corde et la direction. Les arcs sont tracés par défaut dans le sens
trigonométrique. Maintenez la touche Ctrl enfoncée tout en déplaçant le
curseur afin d'effectuer le tracé dans le sens des aiguilles d'une montre.
Liste des invites Les invites suivantes s'affichent. Point de départ
Dessine un arc à partir des trois points spécifiés sur la circonférence de
l'arc. Le premier point est le point de départ (1). Remarque : Si vous
appuyez sur ENTREE sans spécifier de point, l'extrémité de la dernière
ligne ou du dernier arc tracé est utilisée, et vous êtes immédiatement
invité à spécifier l'extrémité du nouvel arc. Un arc tangent à la dernière
ligne, à la dernière polyligne ou au dernier arc tracé est ainsi créé.
Second point Permet de spécifier le deuxième (2) point comme point sur la
circonférence de l'arc. Extrémité Permet de spécifier le point final (3)
sur l'arc. Vous pouvez spécifier un arc à trois points dans le sens horaire
ou trigonométrique. Centre Commence par spécifier le centre du cercle dont
l'arc fait partie. Point de départ Permet de spécifier le point de départ
de l'arc. Extrémité A partir du centre (2), dessine un arc dans le sens
trigonométrique entre le point de départ (1) et un point d'arrivée situé
sur une demi-droite imaginaire tracée entre le centre et le troisième point
(3). Comme le montre l'illustration ci-contre, l'arc ne passe pas
nécessairement par ce troisième point. Angle Dessine un arc dans le sens
trigonométrique à partir du point de départ (1), en utilisant un centre
(2), avec un angle décrit spécifié. Si l'ange est négatif, un arc est tracé
dans le sens horaire. Longueur de corde Trace un grand ou un petit arc en
respectant la distance en ligne droite entre le point de départ et le point
d'arrivée. Si la longueur de corde est positive, le petit arc est tracé
dans le sens trigonométrique à partir du point de départ. Si la longueur de
corde est négative, le grand arc est tracé dans le sens trigonométrique.
Fin Commence par spécifier l'extrémité de l'arc. Centre Trace un arc dans
le sens trigonométrique depuis le point de départ (1) jusqu'à un point
final situé sur une demi-droite imaginaire obtenue en partant du centre (3)
vers le point que vous indiquez (2). Angle Dessine un arc dans le sens
trigonométrique du point de départ (1) au point d'arrivée (2), avec un
angle décrit spécifié. Si l'ange est négatif, un arc est tracé dans le sens
horaire. Angle décrit Entrez un angle en degrés ou spécifiez un angle en
déplaçant le périphérique de pointage dans le sens trigonométrique.
Direction Commence à dessiner l'arc tangent à la direction spécifiée. Cette
option permet de dessiner un arc, grand ou petit, dans le sens horaire ou
trigonométrique, entre un point de départ (1) et une extrémité (2). La
direction est déterminée à partir du point de départ. Rayon Dessine le
petit arc dans le sens trigonométrique entre le point de départ (1) et
l'extrémité (2). Si le rayon est négatif, le grand arc est tracé. Centre
Spécifie le centre du cercle dont l'arc fait partie. Point de départ
Spécifiez le point de départ de l'arc. Extrémité Trace un arc dans le sens
trigonométrique depuis le point de départ (2) jusqu'au point situé sur une
demi-droite imaginaire tracée du centre (1) jusqu'au point final (3). Angle
Dessine un arc dans le sens trigonométrique à partir du point de départ
(2), en utilisant un centre (1), avec un angle décrit spécifié. Si l'ange
est négatif, un arc est tracé dans le sens horaire. Longueur de corde Trace
un grand ou un petit arc en respectant la distance en ligne droite entre le
point de départ et le point d'arrivée. Si la longueur de corde est
positive, le petit arc est tracé dans le sens trigonométrique à partir du
point de départ. Si la longueur de corde est négative, le grand arc est
tracé dans le sens trigonométrique. Tangente à la dernière ligne, à l'arc
ou à la polyligne Dessine un arc tangent à la dernière ligne, à la
polyligne ou à l'arc dessiné lorsque vous appuyez sur ENTREE à la première
invite. Extrémité de l'arc Spécifiez un point (1).
</field>
</doc>

Query
=====
http://localhost:8983/solr/browse?q=arc de cercle

When I ran through the query term in admin analysis, the stopword filter
seemed to be working , but not when the actual search is happening.

Any pointers will be appreciated.

Thanks,
Shamik

Re: Problem with French stopword filter

Posted by shamik <sh...@gmail.com>.
Turned out to be a weird exception. Apparently, the comments in the
stopwords_fr.txt disrupts the stop filter factory. After I stripped off the
comments, it worked as expected. 

Referred to this thread :
http://mail-archives.apache.org/mod_mbox/lucene-dev/201309.mbox/%3CJIRA.12668581.1379112889603.133757.1379118831671@arcas%3E



--
View this message in context: http://lucene.472066.n3.nabble.com/Problem-with-French-stopword-filter-tp4138545p4138550.html
Sent from the Solr - User mailing list archive at Nabble.com.

Re: Problem with French stopword filter

Posted by shamik <sh...@gmail.com>.
I found the issue. It had to do with edismax "qf" entry in request handler. I
had the following entry :

<str name="qf">name_fra^1.2  title_fra^10.0 description_fra^5.0 
author^1</str>

Except for author, all other fields are of type adsktext_fra, while author
was of the type text_general, which uses english stopfilter. 



--
View this message in context: http://lucene.472066.n3.nabble.com/Problem-with-French-stopword-filter-tp4138545p4138561.html
Sent from the Solr - User mailing list archive at Nabble.com.