Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/06/2012, 11:13
Avatar de puntopeek
puntopeek
 
Fecha de Ingreso: abril-2009
Ubicación: La Habana
Mensajes: 6
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Busqueda "inteligente" tipo google en un string

Amigo, no estoy seguro de entender bien la pregunta, pero no parece algo tan difícil, primeramente debes establecer bien cuales son las reglas de la búsqueda.

Para esto debes tener una lista de conjunciones, preposiciones y palabras prohibidas, algo como:
Código C#:
Ver original
  1. string [] preposiciones = new string []{"a", "antes", "de", "desde" ... "tras"};
  2. string [] conjunciones = {"y", "sino", "si no"... "como"}

Entonces defines un método Buscar de la siguiente forma:

Código C#:
Ver original
  1. public static Buscar(string busqueda, string texto){
  2.      string [] palabras_buscadas = busqueda.Split(',');
  3.      for(int i=0; i<palabras_buscadas.Length; i++)
  4.           if(preposiciones.IndexOf(palabras_buscadas[i] <0 || conjunciones.IndexOf(palabras_buscadas[i] <0)
  5.           {
  6.                   //Si no es una preposicion ni conjuncion
  7.                   DoSomething();
  8.           }
  9. }

Esta sería la idea mas o menos (no he probado ni compilado el código), recuerda buscar con IndexOf que es mejor, y lo otro es que sería buena idea llevar todas las palabras a minúsculas para realizar la busqueda.