2010-12-03 14 views
0

J'essaye de construire la fonctionnalité de suggestion automatique en utilisant Solr. L'index contient différents endroits dans une ville et ressemble à quelque chose commeFiltrage des résultats dans solr

id: unique id 
name: the complete name 
type: can be one of 'location_zone', 'location_subzone', 'location_city', 'outlet', 'landmark' ... 
city: city id 

maintenant quand les types d'utilisateurs quelque chose, je veux revenir la suggestion que de la ville actuelle et de type location_ *. quelque chose de similaire à WHERE city_id = 1 AND type="location_%" dans SQL.

Je suppose qu'une façon de le faire est de facetter mais est-ce la bonne façon? va-t-il encore chercher dans tous les documents et ensuite filtrer les résultats ou va-t-il appliquer la condition d'abord comme mysql le ferait

PS: Je suis nouveau à solr et apprécierait si vous pouvez signaler des erreurs dans l'approche

Répondre

2

Solr fournit un filtrage en utilisant le fq parameter. Qu'est-ce que vous cherchez devrait être quelque chose le long des lignes de:

&fq=city_id:1&fq=type:location_*&q=... 

This page illustre très bien comment et quand utiliser des requêtes de filtre dans Solr.

+0

Votre lien est cassé. – javamonkey79

+0

Essayez ceci https://cwiki.apache.org/confluence/display/solr/Common+Query+Parameters#CommonQueryParameters-Thefq(FilterQuery)Parameter – mrvol