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

Busqueda "inteligente" tipo google en un string

Estas en el tema de Busqueda "inteligente" tipo google en un string en el foro de .NET en Foros del Web. Estoy tratado de hacer una búsqueda en un string parecido a lo que hace google con la busqueda web. Por ejemplo, si busco en este ...
  #1 (permalink)  
Antiguo 05/06/2012, 13:46
Avatar de locojars  
Fecha de Ingreso: mayo-2002
Mensajes: 265
Antigüedad: 21 años, 11 meses
Puntos: 4
Pregunta Busqueda "inteligente" tipo google en un string

Estoy tratado de hacer una búsqueda en un string parecido a lo que hace google con la busqueda web. Por ejemplo, si busco en este texto
Código:
Frente a la diversidad de opiniones del resultado colocamos, en esta entrada, si no, colocamos otra entre si notoriamente.
realidad de
las palabras:

Código:
si, no
El resultado debería de ser vació ya que las palabras "si" y "no" no existen como palabras que tenga significado sino que estan dentro de una conjución o dentro de otra palabra.

He tratado de utilizar el contains y no me ha resultado.

Si alguien puede ayudarme se lo agradecería, estamos dispuestos incluisve a pagar por el servicio.

Gracias.
  #2 (permalink)  
Antiguo 07/06/2012, 11:13
Avatar de puntopeek  
Fecha de Ingreso: abril-2009
Ubicación: La Habana
Mensajes: 6
Antigüedad: 15 años
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.

Etiquetas: google, intelingente, vb, busquedas
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:43.