2011-12-30 11 views

Respuesta

15

No creo que el analizador de consulta admite < operador. Debe definir un RangeQuery explícitamente. A continuación, puede adjuntar una consulta de nombre a la que utiliza un BooleanQuery.

Actualización: Aparentemente, estaba equivocado. De hecho, el analizador de consultas de Solr es más inteligente que el de Lucene. Aquí está su respuesta: http://wiki.apache.org/solr/SolrQuerySyntax#Differences_From_Lucene_Query_Parser

campo: [* A 100] encuentran todos los valores de campo inferior o igual a 100

9

también en cuenta que performancewise se debe utilizar una consulta de filtro para esto:

&q=name:ipod&fq=price:[* TO 100] 
5

Según mi conocimiento, no creo que Solr/Lucene sea compatible con mayor/menor que. Se puede hacer mediante programación para cosas como números enteros y fechas (y en su caso, valores monetarios, ya que solo hay dos decimales de los que preocuparse).

Por ejemplo, nativa, Lucene y Solr analizadores de consultas sobre soporte inferior o igual a (= <):

?q=name:ipod AND price:[* to 99.99] 

Esto le daría a los menos de 100 dólares que usted está buscando, siempre que el los datos no implican fracciones de un centavo.

Para cosas como fechas y números enteros, u otras cosas que tienen diferencias finitas, puede disminuir (o en el caso de ser mayor que, incrementar) el valor que está buscando.

EDIT: Compruebe la documentación para la versión 6.5 de Solr. CONTIENE soporte de rango exclusivo. La página 272 de la guía de referencia explica.

http://mirror.cc.columbia.edu/pub/software/apache/lucene/solr/ref-guide/apache-solr-ref-guide-6.5.pdf

Esencialmente, utilizar llaves para denotar menos.

?q=name:ipod AND price:{* TO 100} 
Cuestiones relacionadas