2011-12-03 12 views
5

Quiero implementar una búsqueda simple en mi aplicación, basada en la consulta de búsqueda que tengo. Digamos que tengo una matriz que contiene 2 párrafos o artículos y deseo buscar en estos artículos el tema relacionado o las palabras clave relacionadas que ingresé.Cómo implementar una búsqueda de cadenas simple

Por ejemplo:

//this is my search query 
string mySearchQuery = "how to play with matches"; 

//these are my articles 
string[] myarticles = new string[] {"article 1: this article will teach newbies how to start fire by playing with the awesome matches..", "article 2: this article doesn't contain anything"}; 

¿Cómo puedo obtener el primer artículo basado en la consulta de búsqueda que he proporcionado anteriormente? ¿Alguna idea?

Respuesta

6

este volverían cualquier cadena en myarticles que contiene todas las palabras mysearchquery:

var tokens = mySearchQuery.Split(' '); 
var matches = myarticles.Where(m => tokens.All(t => m.Contains(t))); 

foreach(var match in matches) 
{ 
    // do whatever you wish with them here 
} 
+0

es probable que desee hacer un caso-insensibles comparar si esta técnica se utiliza (es decir, por lo Partidos partidos partidos). ;) –

+0

¿sabes cómo se compara, en términos de velocidad, con el uso de expresiones regulares? – GameAlchemist

+0

Puedes mejorar esto usando string.ToLower(). Entonces no tiene que preocuparse por las mayúsculas. –

1

Estoy seguro de que puede encontrar un buen marco para la búsqueda de cadenas, porque es un tema amplio y tiene muchas reglas de búsqueda.

Pero para esta muestra simple, intente dividir la consulta de búsqueda con "", para cada palabra haga una búsqueda simple de cadenas, si la encuentra, agregue 1 punto a la búsqueda de párrafo, al final devuelva el párrafo con la la mayoría de los puntos ...

Cuestiones relacionadas