Estoy desarrollando un componente de búsqueda de una aplicación web usando Lucene. Me gustaría guardar las consultas de los usuarios en un índice y usarlas para sugerir consultas alternativas a los usuarios y para mantener las estadísticas de las consultas (las consultas más utilizadas, las mejores puntuaciones, ...).Mantener estadísticas de consulta usando lucene
Para utilizar estos datos para las sugerencias de consulta alternativas, analizaría las consultas para ver qué términos se utilizan con más frecuencia entre sí y lo usaría para crear una sugerencia para el usuario.
Pero no puedo determinar en qué forma indexar los datos. Estaba pensando en simplemente agregar las consultas al índice, pero de esa manera podría haber una gran cantidad de datos redundantes, ya que muchos documentos en el índice tendrían el mismo contenido. ¿Alguien tiene alguna idea sobre la forma en que esto se puede lograr?
Gracias por la ayuda.
Pensé en hacer eso, pero también necesito mantener algunas estadísticas sobre las consultas (número de veces que se utilizaron, número de visitas) y la única forma en que puedo pensar para lograr esto es almacenar el número de veces utilizado en el índice e incrementarlo antes de actualizar el documento, pero parece una operación costosa. – jbradaric
¿Puedes usar las Frecuencias a Término de lucene para hacer esto? http://stackoverflow.com/questions/667389/get-term-frequencies-in-lucene. Si desea hacer las recomendaciones de consulta en tiempo real, querrá precomputar el término Freq's con anticipación y almacenarlas. – Joel
Puedo usar TermFrequencies si no almaceno las consultas como un campo único, pero esperaba evitar eso. Pero parece que tendré que almacenar las consultas como no únicas hasta que encuentre una mejor solución, si la solución existe. – jbradaric