Foros del Web » Programación para mayores de 30 ;) » Java »

Busqueda de nombres y apellidos

Estas en el tema de Busqueda de nombres y apellidos en el foro de Java en Foros del Web. Hola: Tengo una consulta, tengo una tabla con los siguientes atributos pe_documento pe_nombres pe_apellido_p pe_apellido_m Y quiero hacer una búsqueda desde un input de un ...
  #1 (permalink)  
Antiguo 08/09/2014, 16:33
 
Fecha de Ingreso: enero-2012
Ubicación: Lima
Mensajes: 19
Antigüedad: 12 años, 2 meses
Puntos: 1
Pregunta Busqueda de nombres y apellidos

Hola:

Tengo una consulta, tengo una tabla con los siguientes atributos

pe_documento
pe_nombres
pe_apellido_p
pe_apellido_m

Y quiero hacer una búsqueda desde un input de un nombre o número de documento

Estoy usando Primefaces e Hibernate y la base de datos en mysql
Esta búsqueda debe soportar coincidencias por ejemplo:
En el input (con n número de palabras a buscar):
Martín
Resultados:
Martin
martíN

En el input:
Donofrio
Resultados:
D’onofrio
donofrio

En el input:
Juan (nombres) Perez (apellido paterno o materno)
Resultados:
Juan Antonio Mariscal Peres
Juan Ruperto Péres

Como solución momentánea hice lo siguiente.

Código PHP:
StringTokenizer st = new StringTokenizer(posNombre);
            List<
Stringbusqueda = new ArrayList<String>();
            while (
st.hasMoreTokens()) { // este ciclo es para comprobar cuando
                                            // se
                                            // acaba de procesar tu cadena
                
String palabra st.nextToken();// esto lee la palabra siguiente
                                                // en
                                                // la cadena
                
palabra removeTildes(palabra);
                
// cadenaBD = cadenaBD.replaceAll(" ", "");
                
palabra palabra.replaceAll("'""");
                
palabra palabra.replaceAll("-""");
                
palabra palabra.toLowerCase();
                
busqueda.add(palabra);
            }
            List<
PostulantepostulanteDB postulanteDao.listarPostulante();
            
listaCoincidenciasPostulantes = new ArrayList<Postulante>();
            
String cadenaBD;

            for (
Postulante p postulanteDB) {
                
cadenaBD p.getPersona().getPeNombres() + " "
                        
p.getPersona().getPeApellidoP() + " "
                        
p.getPersona().getPeApellidoM();
                
cadenaBD removeTildes(cadenaBD);
                
cadenaBD cadenaBD.replaceAll(" """);
                
cadenaBD cadenaBD.replaceAll("'""");
                
cadenaBD cadenaBD.replaceAll("-""");
                
cadenaBD cadenaBD.toLowerCase();
                
int contador 0;
                
int tamanio busqueda.size();
                for (
String b busqueda) {
                    if (
p.getPersona().getPeDocumento().indexOf(b) != -1) {                
                        
listaCoincidenciasPostulantes.add(p);
                        break;
                    } else {
                        if (
cadenaBD.indexOf(b) != -1) {
                            
contador++;
                            if (
tamanio == contador) {
                                
listaCoincidenciasPostulantes.add(p);
                                break;
                            }
                        }
                    }
                }
            } 
Quisiera saber cual es la mejor forma de hacer esta búsqueda.

GRACIAS.

Última edición por zerart245; 08/09/2014 a las 17:10

Etiquetas: busqueda, hibernate, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:10.