Как реализовать простой поиск строки - PullRequest
5 голосов
/ 03 декабря 2011

Я хочу реализовать простой поиск в моем приложении, основываясь на моем поисковом запросе.Допустим, у меня есть массив, содержащий 2 абзаца или статьи, и я хочу найти в этих статьях связанный предмет или связанные ключевые слова, которые я ввожу.

Например:

//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"};

Как получить первую статью на основе поискового запроса, который я предоставил выше?Есть идеи?

Ответы [ 2 ]

6 голосов
/ 03 декабря 2011

Это вернет любую строку в myarticles, которая содержит все слова в 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
}
1 голос
/ 03 декабря 2011

Я уверен, что вы можете изобразить хороший фреймворк для поиска строк, потому что это широкий предмет и множество правил поиска.

Но для этого простого примера попробуйте разделить поисковый запрос с помощью "",для каждого слова выполните простой поиск строки, если вы найдете его, добавьте 1 пункт к совпадению поиска абзаца, в конце верните абзац с наибольшим количеством очков ...

...