2012-02-27 10 views
9
  • que estoy usando Solr 3.3.0 trabaja fuera de la caja utilizando el ejemplo carpeta
  • solrQueryParser defaultOperator = "O"

Mi problema es que Solr doesn' Parece que estoy obteniendo buenos resultados cuando busco una frase de varias palabras.múltiples consultas de palabras en Solr

La siguiente búsqueda no devolvió resultados.

  1. http://localhost:8080/solr/select/?q=roof+fixing

Sin embargo, cuando la búsqueda de techo o fijación de, ambos vuelven unos buenos resultados.

  1. http://localhost:8080/solr/select/?q=roofretornos 4 resultados
  2. http://localhost:8080/solr/select/?q=fixingdevuelve 3 resultados

En la consulta de "fijación del techo", que esperan volver a Solr 7 resultados. Los 4 registros para techo y 3 registros para fijación.

¿Es necesaria alguna configuración especial para que eso suceda?

Respuesta

8

Acabas de expresar tu pregunta incorrectamente.

intente lo siguiente consulta desde la página de administración:

(techo o de fijación)

O, si usted quiere encontrar que en un campo en particular:

nombre de campo: (techo o de fijación)

Cuando SOLR realiza una consulta como "fijación de techo", está solicitando efectivamente todos los documentos que tienen "techo" Y "fijación" en el campo predeterminado (o el conjunto predeterminado de campos dismax. La única forma de cambiar el es decir, reescribir la consulta que su los usuarios ingresan. Eso es lo que hacemos, pero a una escala mayor. Tenemos una interfaz de usuario que proporciona un montón de opciones y genera una consulta SOLR. Las personas pueden ingresar un término de búsqueda en un campo específico y si hay más de una palabra y no está citado, agregamos el AND. Luego, O juntos, todos los campos que se completan. Algunos campos son especiales y tienen una versión MIN y MAX que convertimos en una consulta de rango :[0 TO 125000]. Y hay algunos menús desplegables que admiten selecciones múltiples que también convertimos en un quirófano, p. Ej. State:("WA" OR "CA" OR "OR" OR "NV")

+0

Creo que entiendo su punto, pero estoy dejando que los usuarios busquen a través de una interfaz frontal, por lo que no puedo pedirles a los usuarios que escriban * (techo O fijación) *. – Filype

+0

Gracias por la explicación adicional, aún así, no parece obtener más resultados escribiendo http: // localhost: 8080/solr/select /? Q = (techo% 20OR% 20fijación) – Filype

+1

Filype, si usted está dejando los usuarios buscan en la interfaz, y esperando un comportamiento para la búsqueda, deben procesar su consulta en el back-end antes de enviarla a SOLR. Debería estar preparando sus valores con el paréntesis, como se indicó anteriormente. Si desea agregar O o Y, otorgue al usuario una opción, detecte eso y luego prepare e inyéctelos en su consulta SOLR antes de pasarlo a SOLR. – Atomox

0

Solr no será necesariamente la vuelta de 7 resultados para "techo o de fijación" como uno de los resultados podrían incluir tanto "techo" y "fijación". Supongamos que "techo" tiene 3 resultados, "fijación" tiene 4, pero tanto "techo" como "fijación" aparecen en 2 resultados. Obtendrá solo 5 resultados en una búsqueda de "techo O fijación" ya que Solr no devolverá resultados duplicados.

¿Ha intentado utilizar un espacio codificado en url ("% 20") en lugar del signo "+"?Si el operador predeterminado es O no debería necesitar incluir ese operador.

+0

roof% 20fixing también devuelve 0 resultados, entiendo su punto, independientemente de si fue 7 o 5, al menos esperaría 4 resultados. – Filype

+0

¿Es posible que el campo en el que está buscando no esté simbólico? –

+0

Mi pantalla de administración dice que es un campo Tipo TEXT_EN – Filype

Cuestiones relacionadas