4 votes

SOLR - PathHierarchyTokenizerFactory Facette Query

J'ai essayé d'effectuer une requête sur un champ qui est configuré pour être solr.PathHierarchyTokenizerFactory, mais la requête ne renvoie que tous les enregistrements. Il semble que l'exécution d'une requête par facette ne fonctionne pas. Est-ce que quelqu'un a un moyen d'y parvenir ? J'utilise PathHierarchy pour implémenter les facettes catégorie/sous-catégorie.

<fieldType name="text_path" class="solr.TextField" positionIncrementGap="100">
    <analyzer>
        <tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/" />
    </analyzer>
</fieldType>

<field name="libraries" type="text_path" indexed="true" stored="true" multiValued="true" />

Et

http://linux2:8984/solr/select?q=*:*&rows=0&fq=libraries:"/test/subtest"&facet=true&facet.field=libraries&f.libraries.facet.sort=true&f.libraries.facet.limit=-1&f.libraries.facet.mincount=-1

Remerciements

10voto

Kenneth Ito Points 2395

Modifiez la définition de votre champ text_path pour appliquer la PathHierarchyTokenizerFactory au moment de l'indexation uniquement (exemple ci-dessous). Votre problème est que vos requêtes sont traitées par le tokenizer de sorte que fq=libraries :"/test/subtest" interroge en fait fq=libraries :(/test/subtest OR /test).

<fieldType name="text_path" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/" />
    </analyzer>
</fieldType>

Notez que l'analyseur type="Index"

0voto

Jan Rasehorn Points 281

Que se passe-t-il si vous supprimez les paramètres de facettage ? Tous les documents sont-ils également renvoyés ?

À mon avis, les facettes ne devraient pas avoir d'effet sur les résultats de la recherche. Il me semble que la requête de filtre que vous avez passée dans le paramètre fq ne fonctionne pas pour une raison quelconque.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X