Question

Je l'ai installé et utilisé avec succès Solr 4. Je dois dire que Solr 4 est génial! Quoi qu'il en soit, je triai avec succès par la distance et utilisé un geofilter pour limiter les résultats à une certaine zone. Ce que je voudrais faire est maintenant à stimuler le score de pertinence par l'inverse de la distance. Cette page parle à ce sujet, mais ne dit pas comment le faire (http://wiki.apache.org/solr/SpatialSearch)

Je l'ai essayé ce qui suit, mais il me donne une erreur:

http://localhost:8983/solr/select/?q={!boost b=recip(geodist(), 1, 1000, 1000)}...

L'erreur que je reçois est:

org.apache.lucene.queryParser.ParseException: Expected identifier at pos 27 str='{!boost b=recip(geodist(), 1, 10 in ...

Toute aide serait appréciée. Merci!

Était-ce utile?

La solution

Vous devez spécifier toujours la partie principale de votre requête après la fonction boost:

q={!boost b=recip(geodist(),1,1000,1000)}foo:bar&...

Si vous ne souhaitez que stimuler par l'inverse de la distance que vous pouvez utiliser une requête générique:

q={!boost b=recip(geodist(),1,1000,1000)}*&...

... ou utiliser l'analyseur de requête de fonction:

q={!func}recip(geodist(),1,1000,1000)&...

Vous devez également spécifier les valeurs lat / long et champ spatial à exécuter cette interrogation comme arguments de la fonction geodist:

q={!boost b=recip(geodist(50.1, -0.86, myGeoField),1,1000,1000)}foo:bar&...

... ou refactorisée en tant que paramètres de chaîne de requête:

q={!boost b=recip(geodist(),1,1000,1000)}foo:bar&sfield=myGeoField&pt=50.1,-0.86
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top