Almacenamiento de datos relacionales en un índice Lucene.NET

Actualmente estoy tratando de implementar una búsqueda basada en Lucene.NET en una gran base de datos y tengo un problema al intentar hacer una búsqueda en lo que son datos esencialmente relacionales.

En un nivel alto, los datos que intento buscar están agrupados, cada elemento pertenece a 1 a 3 grupos. Entonces necesito poder hacer una búsqueda de todos los elementos que están en una combinación de grupos (por ejemplo, cada elemento pertenece al grupo A y al grupo B).

Cada uno de estos grupos tiene identificaciones y descripciones existentes a partir de los datos que estoy buscando, pero las descripciones pueden ser cadenas secundarias entre sí (por ejemplo, un grupo llamado "Cosas" y el otro "Otras cosas"), y yo no No quiero coincidir con las categorías que tienen una subcadena de la que estoy buscando.

He estado considerando recuperar los datos sin este filtro y luego filtrar los ID, pero tenía la intención de compaginar los datos devueltos por Lucene por razones de rendimiento. También he considerado poner las ID en espacios separados y hacer una búsqueda de texto en el campo, pero eso parece un hack total ...

¿Alguien tiene alguna idea de cómo manejar mejor este tipo de búsqueda en Lucene.NET? (Solo para aclarar antes de que alguien diga que estoy usando la herramienta incorrecta, esto es solo un subconjunto de un conjunto más grande de filtros que incluye búsquedas de texto completo. Si aún piensa que estoy usando la herramienta incorrecta, me encantaría escuchar lo que es el correcto

Respuestas a la pregunta(1)

Su respuesta a la pregunta