Pregunta

Así que he aplicado y utilizado con éxito Solr 4. Tengo que decir que Solr 4 es increíble! De todos modos me lo solucionaron con éxito por la distancia y utilizado una geofilter para limitar los resultados a un área determinada. Lo que me gustaría hacer ahora es aumentar la puntuación de relevancia por el inverso de la distancia. Esta página habla sobre ello, pero no dice cómo hacerlo (http://wiki.apache.org/solr/SpatialSearch)

He intentado lo siguiente pero me da un error:

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

El error que consigo es:

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

Cualquier ayuda sería apreciada. Gracias!

¿Fue útil?

Solución

Usted todavía tiene que especificar la parte principal de la consulta después de la función de refuerzo:

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

Si sólo está interesado en el impulso por la inversa de la distancia se puede utilizar una consulta de comodín:

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

... o utilizar el analizador de consultas función:

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

También es necesario especificar los valores de latitud / longitud y ámbito espacial a consulta contra ya sea como argumentos de la función geodist:

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

... o un factor fuera como parámetros de cadena de consulta:

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

Otros consejos

Sólo añadir que obtener mejores resultados en ...

{!boost b=recip(geodist(),1,100,10)}

No sé lo que causa esto, pero me gustaría Solr dio un poco más información sobre los parámetros para el recip y de impulso. actual documentación es insuficiente.

Como nota al margen, aquí es un impulso distancia utilizada en mi lugar de trabajo. Es diferente de la que está en el sitio de la documentación Solr. Esta función impulso tratará a distancia por igual para una serie de kilomteres antes del inicio del impulso. Esto es útil en algunas situaciones, en las que no desea cambios de relevancia para las pequeñas diferencias de distancia.

Puede cambiar el 25 constante para ser cualquier número de kilómetros que desea que el impulso sea el mismo.

Puede definir el impulso distancia como tal:

div(1.0, min(1000, max(25, geodist())))

impulso parcela distancia

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top