Hi :)

I'm using Solr 3.6.1 and i'm trying to use the similarity features of lucene/solr to compare texts.

The content of my documents is in french so I defined a field like :

<field name="content_mlt" type="text_fr" termVectors="true" indexed="true" stored="true"/>

(it uses the default text_fr fieldType provided with the default schema.xml file)

i'm using the following method to query my index :

SolrQuery sQuery = new SolrQuery();
sQuery.setQueryType("/" + MoreLikeThisParams.MLT);
sQuery.set(MoreLikeThisParams.MATCH_INCLUDE, false);
sQuery.set(MoreLikeThisParams.MIN_DOC_FREQ, 1);
sQuery.set(MoreLikeThisParams.MIN_TERM_FREQ, 1);
sQuery.set(MoreLikeThisParams.MAX_QUERY_TERMS, 50);
sQuery.set(MoreLikeThisParams.SIMILARITY_FIELDS, field);
sQuery.set("fl", "*,id,score");
sQuery.setRows(5);
sQuery.setQuery("content_mlt:"/the content to find/");

QueryResponse rsp = server.query(sQuery);
return rsp.getResults();

The problem is that the returned results and the associated scores look strange to me.

I indexed the three following texts :

sample 1 :
"Le 1° de l'article 81 du CGI exige que les allocations pour frais soient utilisées conformément à leur objet pour être affranchies de l'impôt. Lorsque la réalité du versement des allocations est établie, le bénéficiaire doit cependant être en mesure de justifier de leur utilisation";

sample 2:
"Le premier alinéa du 1° de l'article 81 du CGI prévoit que les rémunérations des journalistes, rédacteurs, photographes, directeurs de journaux et critiques dramatiques et musicaux perçues ès qualités constituent des allocations pour frais d'emploi affranchies d'impôt
à concurrence de 7 650 EUR.";

sample 3:
"Par ailleurs, lorsque leur montant est fixé par voie législative, les allocations pour frais prévues au 1° de l'article 81 du CGI sont toujours réputées utilisées conformément à leur objet et ne peuvent donner lieu à aucune vérification de la part de l'administration. Il s'agit d'une présomption irréfragable, qui ne peut donc pas être renversée par la preuve contraire qui serait apportée par l'administration d'une utilisation non conforme à son objet de l'allocation concernée. Pour que le deuxième alinéa du 1° de l'article 81 du CGI s'applique, deux conditions doivent être réunies simultanément : - la nature d'allocation spéciale inhérente à la fonction ou à l'emploi résulte directement de la loi ;
- son montant est fixé par la loi";

I tried to query the index by passing the first sample as the content to query and the result is the following :
MLT result: id: dc3 - score: 0.114195324 (correspond to the sample 3)
MLT result: id: dc2 - score: 0.035233106 (correspond to the sample 2)

The results don't even contain the first sample, although it is exactly the same text as the one put into the query :/

Any idea of why I get these results?
Maybe the query parameters are incorrect or there is something to change in the solr config?

Thanks :)

Gary




Reply via email to