2011-11-22 15 views
7

En solr Quiero buscar un campo con un número negativo como nodeId: -1. en schema.xml, que define así: < campo name = tipo "NODEID" = "int" indexada = "true" almacenado = "true" />cómo buscar número negativo en sol?

Solr lanza error al uso "NODEID: - 1 "para buscar de esta manera: org.apache.lucene.queryParser.ParseException: No se puede analizar 'storeId: -1': Encontrado" "-" "-" "en la línea 1, columna 8. Estaba esperando uno de:" ("..." * "... ... ... ... ..." ["..." {"... ...

Debo buscar con storeId: \ - 1 o storeId: "- 1" para obtener la respuesta.

ahora la pregunta es: ¿Puedo modificar cualquier archivo de configuración de solr? buscar sin ningún personaje de escape? O bien, otra forma de resolver este problema sin modificar el código java. Gracias.

Respuesta

2

"-" es un carácter especial para el analizador de consultas, que se utiliza para marcar algunas cláusulas como prohibidas. Si no quiere escapar de este personaje, debe cambiar su analizador de consultas.

Puede darle una oportunidad al raw query parser: q={!raw f=nodeId}-1 pero no tiene ninguna de las características del analizador de consultas predeterminado. En realidad, el analizador de consultas sin procesar solo le permite ejecutar consultas de términos puros.

Cuestiones relacionadas