solr - según - Consulta de rango funcional anidado con O
según kotler y armstrong 2008 (2)
Estoy tratando de hacer una consulta funcional con un OR / Y sin embargo, parece que hay limitaciones para hacerlo. Aquí está la lógica para el equivalente SQL de la consulta que intento realizar:
ABS(col1-:val1)<1 OR (col1 IS NULL AND ABS(col2-:val1)<1)
Esta es mi consulta actual de fq de trabajo para obtener los documentos con una diferencia ABS de <1.
fq={!frange l=0 u=1}abs(sub(col1,val1))
Esto es lo que intento ejecutar pero no puedo sin error
fq={!frange l=0 u=1}abs(sub(col1,val1)) OR (-col1:[* TO *] AND {!frange l=0 u=1}abs(sub(col2,val1)))
Parece que no es posible usar AND y OR en la misma función fq cuando se utiliza una consulta funcional. ¿Cómo voy a hacer esto? Estoy usando solr 4.1. Gracias
Me encontré con un problema similar y descubrí la solución. Publicarlo aquí para que pueda ayudar a alguien. La consulta original se puede modificar así mediante la consulta : función "..." de solr:
fq=_query_:"{!frange l=0 u=1}abs(sub(col1,val1))" OR (-col1:[* TO *] AND _query_:"{!frange l=0 u=1}abs(sub(col2,val1)))"
Tratar
fq={!frange l=0 u=1 v=$myabs}&myabs=abs(sub(col1,val1))