Question

Je cherche actuellement à mettre en œuvre cette fonctionnalité plus comme basée sur un sur un certain nombre de champs dans mon index.

Ma configuration actuelle est la suivante: Haystack | PySolr | Solr

Pour cette pièce, je suis en utilisant PySolr et passer les paramètres à la fonction more_like_this. La réponse trouve le document, mais aucun résultat connexes. Pourquoi?

Voici l'URL je frappe:

http://localhost:8080/solr/mlt?q=django_id:12123412&mlt.fl=industry_ids,loc_state,amount,sector_id&mlt.interestingTerms=details

Voici ma réponse de Solr:

<response>
<object type="{XXXXXX-0F1D-4F28-AAA2-XXXXXXXXXXX}" cotype="cs" id="cosymantecbfw" style="width: 0px; height: 0px; display: block;"/>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">24</int>
</lst>
<result name="match" numFound="1" start="0">
    <doc>...</doc>
</result>
<result name="response" numFound="0" start="0"/>
<lst name="interestingTerms"/>
</response>

solrconfig.xml

<!-- More Like This -->
<requestHandler name="/mlt" class="solr.MoreLikeThisHandler">
</requestHandler>

schema.xml

<field name="award_amount" type="sfloat" indexed="true" stored="true" multiValued="false" termVectors="true" />
<field name="estatus" type="slong" indexed="true" stored="true" multiValued="false" termVectors="true"/>
<field name="loc_state" type="string" indexed="true" stored="true" multiValued="false" termVectors="true"/>
<field name="orgtype_id" type="string" indexed="true" stored="true" multiValued="false" termVectors="true" />
<field name="sector_id" type="string" indexed="true" stored="true" multiValued="false" termVectors="true"/>
<field name="industry_ids" type="string" indexed="true" stored="true" multiValued="true" termVectors="true" />
<field name="award_amount_exact" type="sfloat" indexed="true" stored="true" multiValued="false" termVectors="true" />
<field name="sector_id_exact" type="string" indexed="true" stored="true" multiValued="false" termVectors="true"/>
<field name="amount_exact" type="sfloat" indexed="true" stored="true" multiValued="false" termVectors="true"/>

Toute aide serait appréciée!

Était-ce utile?

La solution

Vos champs de texte doit être de type text, qui les processus pour les rendre interrogeable . Les champs string sont stockés et interrogés comme ils sont, si ils ne sont pas interrogeables , ce qui les rend inutiles pour MLT.

Référencez copier les champs si jamais vous voulez stocker les mêmes données que les deux text et string (par exemple, facettage).


Je vois que vous souhaitez également trouver des numéros les plus proches de notre requête. MLT ne convient pas à cela. Vous voulez composer une requête Fonction pour cela. SolR: Plus comme ceci sur les champs numériques

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top