2010-03-28 2 views
5

J'ai un identifiant spécifique comme 1,2,5,11,64589 dans solr (type int)Requête de plage de valeurs pour un identifiant spécifique comme/solr/select? Q = x: [1,2,5,11,64589]

Je veux qet requête comme ttp: // localhost: 8983/solr/select? Q = x: [1,2,5,11,64589] mais ne fonctionne pas (obtenir une erreur). comment le faire ???

Note: je peux mettre en œuvre avec "OU" mais je veux de façon simple (et autre limite de problème de longueur url max char)

+0

il semble y avoir aucune autre manière. Que veux-tu accomplir? – Karussell

Répondre

18

Ce sont vos options:

  • ?q=x:(1 OR 2 OR 5 OR ...)
  • ?q=x:1 OR x:2 OR x:5 OR ...
  • ?q=x:(1 2 5 ...) avec defaultOperator = "OR" (N'a pas essayé celui-ci mais il devrait fonctionner)
  • Écrivez votre propre RequestHandler
  • Écrivez votre propre QueryParser
+0

merci beaucoup pour une réponse rapide – Hamid

+0

@Hamid: Veuillez mettre ce que vous avez utilisé à partir des modèles de requête suggérés par Mauricio. –

3

Dans Solr 4.10 et Heliosearch 0.07, vous pouvez utiliser les termes plus efficace requête:

q={!terms f=id}1,2,5,11,64589 
+1

fourni url ne fonctionne pas –

+0

Il semble que Heliosearch ait été désactivé. Leur GitHub dit que la plupart de leurs changements ont été fusionnés dans le noyau de Solr. Cette syntaxe de «requête de termes» doit avoir fait partie de cet effort de fusion. Je peux confirmer que cela fonctionne très bien dans Solr 5.5.2. –

Questions connexes