Hi,
Are you using a correct stopword file for the French language ? It is
very importante in order the the MLT component works fine.
You should also take a look at this document.
http://cephas.net/blog/2008/03/30/how-morelikethis-works-in-lucene/
MLT support in SolrJ is a an old story. May be this can help also.
https://issues.apache.org/jira/browse/SOLR-1085
Regards
--
Dominique
www.eolya.fr
www.crawl-anywhere.com
www.mysolrserver.com
Le 02/10/12 18:14, G.Long a écrit :
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