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