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

Un motor de Busqueda en JAVA

Estas en el tema de Un motor de Busqueda en JAVA en el foro de Java en Foros del Web. Hola a todos!! Resulta que quiero hacer que mis motores de busqueda sean super geniales. Mi algoritmo actual de busqueda se basa en hacer una ...
  #1 (permalink)  
Antiguo 18/01/2005, 07:46
Avatar de alexbariv  
Fecha de Ingreso: septiembre-2003
Ubicación: Mérida, Venezuela
Mensajes: 766
Antigüedad: 20 años, 7 meses
Puntos: 0
Exclamación Un motor de Busqueda en JAVA

Hola a todos!!

Resulta que quiero hacer que mis motores de busqueda sean super geniales.

Mi algoritmo actual de busqueda se basa en hacer una query de la base de datos, luego los extraigo con un resultSet, y mediante do{}while coloco los resultados en una tablita html... (super sencillo)...

Pero ahora me encontre conque mis usuarios tienen mas de 50 registros en la bd, y pues la busqueda se hace algo molesta porque te salen 50 registros de un solo golpe.

Lo que quiero es hacer como los buscadores HIGH, hacer que aparescan resultados de 10 en 10 o de 20 en 20, de acuerdo a una eleccion que le pienso dar al user con una lista combo, cual es la mejor forma de hacer que la query me devuelva resultados de esta forma¿?

Lo otro es hacer criterios enlazados o especiales, es decir, que al poner Estudiante: Alex FechaNac:1984 aparescan los estudiantes que empiecen por alex y hayan nacido en ese año, para esto no tengo ni la mas minima idea de como proceder, asi que un poco de codigo o ideas no vendria mal

Un saludo y gracias de antemano
__________________
"Piensa como una persona de acción y actúa como una persona que piensa."
  #2 (permalink)  
Antiguo 19/01/2005, 11:45
Avatar de ValerioJ  
Fecha de Ingreso: enero-2002
Ubicación: Calabozo -Edo. Guárico
Mensajes: 189
Antigüedad: 22 años, 3 meses
Puntos: 0
Bueno tienes que hacer una especie de paginar datos en aspfacil.com te aparece como hacer esto y en cuanto a lo de la selección te propongo que lo hagas de dos maneras algo así:
1) Más o menos en un select comun se hace esto:

creas una variable: donde capturas el valor a buscar
luego determinas el número de caracteres que esta contenga
y ese valor lo declaras tipo Entero o numérico y después armas un select de forma dinámica con este parámetro esto es:
EJEMPLO:

VARIABLE_BUSCAR='andre'

luego determinas el tamaño así,
variable_tam=len(VARIABLE_BUSCAR),

Y luego armas el select de la siguiente manera:

SELECT CAMPO1,CAMPO2,CAMPO3 FROM MITABLA WHERE LEFT(CAMPO1,variable_tam)=VARIABLE_BUSCAR

y la otra sería más sencilla aún es: utilizar un SELECT * FROM TABLA WHERE left(CAMPO1,4) like variable_buscar y listo.
__________________
ValerioJ
  #3 (permalink)  
Antiguo 19/01/2005, 13:04
Avatar de alexbariv  
Fecha de Ingreso: septiembre-2003
Ubicación: Mérida, Venezuela
Mensajes: 766
Antigüedad: 20 años, 7 meses
Puntos: 0
En java cual seria la sentencia para escanear un string¿?

Por decir, si mis usuarios colocan 'Alex + 1984', yo pueda encontrar ese + y los espacios para dividir las palabras y de esa forma hacer los left¿?


Gracias!!!!
__________________
"Piensa como una persona de acción y actúa como una persona que piensa."
  #4 (permalink)  
Antiguo 24/01/2005, 01:09
 
Fecha de Ingreso: agosto-2004
Mensajes: 296
Antigüedad: 19 años, 9 meses
Puntos: 0
separar una cadena

en java existe una clase llamada StringTokenizer, la cual se construye en base a una cadena, y a los caracteres por los que se va a separar.

el constructor es:
StringTokenizer(String cadena, String delim, boolean regdelim);

ejemplo:

StringTokenizer token= new StringTokenizer("esta es una cadena","a",true);

el objeto token divide la cadena de ejemplo "esta es una cadena" en partes las cuales se forman cuando al recorrer la cadena, encuentra una 'a', por default, el delimitador es el espacio en blanco, y los almacena en un arreglo, y el tercer parametro se refiere a si cuenta tambien el delimitador.


Por ahora no recuerdo mucho, pero investiga mas sobre el StringTokenizer, es lo que necesitas.
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 02:36.