Pregunta

Estoy usando Lucene, y estoy tratando de encontrar una manera para indexar y recuperar documentos que tienen una propiedad a distancia.

Por ejemplo tengo:

Document 1: Price:[30 TO 50]
Document 2: Price:[45 TO 60]
Document 3: Price:[60 TO 70]

y Me gustaría buscar todos los documentos cuyas áreas de distribución se cruzan un determinado intervalo de , en el ejemplo anterior, si busco Price in [55 TO 65] que debería obtener Document 2 y Document 3 como resultados.

No creo NumericRangeQueries solo haría el truco, necesito trabajar en el índice con algo similar al R-árboles, pero se ponen en práctica en Lucene? Además, supongo que lo que necesita debe ser una subclase de MultiTermQuery, debido a que el Price in [55 TO 65] consulta tiene dos límites, pero no veo nada adecuado entre las subclases de MultiTermQuery.

Cualquier ayuda es apreciada, Gracias,

Silvio

P.S. Estoy usando Lucene 2.9.0, pero puedo actualizar a la última versión, si es necesario.

¿Fue útil?

Solución

Una opción sencilla para probar es, durante el tiempo de índice, simplemente ampliar sus rangos para cada valor discreto de la gama. Así [30 A 50] se indexado como 30, 31, 32, 33, 34, etc. A continuación, utilizar la consulta de intervalo normal para consultar la gama. Con tal de que no hay un montón de valores discretos (millones) esto podría llevar a cabo lo suficientemente bien.

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