Question about MoreLikeThis query with solrj

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Question about MoreLikeThis query with solrj

G.Long
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 | Threaded
Open this post in threaded view
|

Re: Question about MoreLikeThis query with solrj

Dominique Bejean
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
>
>
>
>
>