lucene - tutorial - para que se usa elastic search
¿Cómo crear cadenas de consulta Lucene más complejas? (1)
Use la clase BooleanQuery para componer objetos de consulta. Cree uno de estos y agregue () otros objetos Query para crear una consulta disyuntiva más grande:
- BooleanQuery q = new BooleanQuery ();
- q.add (qFirstName, Occur.SHOULD);
- q.add (qLastName, Occur.SHOULD);
- ...
Las consultas atómicas se pueden construir con las clases Term y TermQuery.
(Los enlaces y el ejemplo son para Lucene Java, pero .NET debería ser similar).
Esta pregunta es un spin-off de esta pregunta. Mi consulta es doble, pero como ambas están relacionadas, creo que es una buena idea juntarlas.
- Cómo crear consultas mediante programación. Sé que podría comenzar a crear cadenas y analizar esa cadena con el analizador de consultas. Pero a medida que reúno partes de información de otros recursos, hay una manera programática de hacerlo.
- ¿Cuáles son las reglas de sintaxis para las consultas de Lucene?
--EDITAR--
Daré un ejemplo de requisito para una consulta que me gustaría hacer:
Digamos que tengo 5 campos:
- Nombre de pila
- Apellido
- Años
- Dirección
- Todo
Todos los campos son opcionales, el último campo debe buscar en todos los demás campos. Repaso todos los campos y veo si es IsNullOrEmpty (). Si no es así, me gustaría adjuntar una parte de mi consulta para que agregue la parte de búsqueda relevante.
El nombre y el apellido deben coincidir exactamente y tener más peso que los otros campos. La edad es una cadena y debe coincidir exactamente. La dirección puede variar en orden. Todo también puede variar en orden.
¿Cómo debo ir sobre esto?