2014-09-13 5 views
0

Je suis en train de construire une requête de facette sur le terrain du fabricant lorsque le terme de recherche = « LENS » mais veulent éliminer tous les fabricants où il n'y a pas d'objectif ..Solr facette filtrage requête

Par exemple: - J'ai besoin la sortie suivante mais que vous voulez éliminer « Kodak », car il n'y a pas l'objectif de ce fabricant ....

"facet_fields": { 
    "manu" : [ 
    "Canon USA": 25, 
    "Olympus": 21, 
    "Sony": 12, 
    "Panasonic": 9, 
    "Nikon": 4, 
    "Kodak":0 
    ], 

http://localhost/solr/collection1/select?q=lens&rows=0&wt=json&indent=true&facet=true&facet.query=lens&facet.field=manu 

ne donne pas le résultat correct

+1

Quel résultat obtenez-vous et qu'attendez-vous? Kodak n'est pas présent dans l'exemple que vous avez donné .. – MatsLindh

+0

@Mats: J'ai édité le résultat ... Kodak est actuellement mis à zéro ... Je veux savoir si je peux filtrer les résultats de la requête de facette ... – user1050619

Répondre

2

Vous pouvez utiliser facet.mincount pour récupérer seulement les clés de facette qui ont une valeur supérieure à un certain seuil. C'est 0 par défaut.

facet.mincount=1 

Vous pouvez également fournir la valeur sur une base par champ si vous faites plusieurs facettes dans une seule requête, f.manu.facet.mincount=1.

De plus, il ne devrait pas être nécessaire de faire une requête facette lorsque vous exécutez déjà la même requête que la requête elle-même. Le facet.query est utile si vous voulez faire des requêtes arbitraires pour une facette, dans le même jeu de documents déjà renvoyé par votre requête.

Questions connexes