我想根据我的搜索查询在我的应用程序中实现一个简单的搜索。 假设我有一个包含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"};
如何根据我上面提供的搜索查询获得第一篇文章?有什么想法吗?
答案 0 :(得分:6)
这将返回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 :(得分:1)
我确信你可以为字符串搜索做一个很好的框架,因为它是一个广泛的主题,并且有很多搜索规则。
但是对于这个简单的示例,尝试用“”分割搜索查询,为每个单词做一个简单的字符串搜索,如果找到它,在段落搜索匹配中加1点,最后返回最多的段落点...