Pregunta

Estoy buscando una manera eficiente para indexar y buscar campos numéricos en Lucene.Net. En este momento mi necesidad es sólo para valores enteros.

Quiero buscar por rangos de valores (entre X e Y, más de x ...). En este momento estoy indexar el número tal cual y de forma manual la creación de cláusulas para cada valor entre los dos valores, pero rápidamente se genera una gran cantidad de cláusulas y golpear el límite por defecto (1024) cuando estoy en busca de un valor comprendido entre 1000 y 5000, por ejemplo. Estoy seguro de que hay una mejor manera de hacer eso ...

¿Fue útil?

Solución

lo resolvió con un RangeQuery. También se puede hacer con el analizador de consultas con la siguiente sintaxis:

FieldName:[startValue TO endValue]

Tenga en cuenta que la consulta gama funciona con cadenas, por lo que sus números deben ser normalizados tanto en el índice y en la consulta. En mi caso normalicé 5 dígitos con .ToString ( "00000"). manejo especial sería necesario que los números negativos y decimales, pero no era un problema en mi caso.

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