2011-12-03 7 views
5

私は検索クエリに基づいて、私のアプリケーションで簡単な検索を実装したいと思います。 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"}; 

がどのように私は上記提供された検索クエリに基づいて最初の記事を得ることができますか?何か案が?

答えて

6

これはmysearchquery内の単語をすべて含むmyarticlesで任意の文字列を返します:

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

おそらく、大文字と小文字を区別しないをしたいと思うこの技術が使用された場合の比較(すなわちそう一致するものと一致するもの)。 ;) –

+0

あなたはそれがスピードの点で、正規表現の使用とどのように比較されるか知っていますか? – GameAlchemist

+0

これをさらに改善するには、string.ToLower()を使用します。それでは、大文字を心配する必要はありません。 –

1

私は文字列検索のための素敵なフレームワークを細かくすることができます、それは広い主題であり、多くの検索ルールを持っていると確信しています。

しかし、この簡単なサンプルでは、​​検索クエリを ""で分割してみてください。単純な文字列検索を行います。見つかった場合は、段落検索一致に1ポイントを追加し、最後にほとんどのポイント...

関連する問題