2009-07-14 37 views

答えて

1

Lucene.NET。

私のアプリケーションでこれをどのように使用したかに関するブログ記事があります。 http://ifdefined.com/blog/post/Full-Text-Search-in-ASPNET-using-LuceneNET.aspx

+0

一緒質問 1の カップルを、物品を置くためのおかげで)インデックスは、ディスク・ファイル・フォルダを必要としないか、それだけではメモリに住むことができますか?私の場合は、特定のwinformの生存期間中、オンザフライで索引を構築して検索する必要があります。 2)検索結果は、一致した文書のどのフィールド/プロパティを示していますか?例: 私のデータテーブルには次のフィールドがあります Key_ID、Description、Date1、Date2、その他のインデックスされていないフィールド テキスト()で列(&行)を強調表示しますか? – Kumar

+0

#1 - Lucene.NETの "RAMDirectory"クラスを使用できます。私は個人的な経験はありません。 #2 - はい。 Luceneのインデックスに格納する識別子を設計し、結果をデータに戻すことができます。 –

0

ここでは完全に「全文検索」ではなく、面白​​くて役立つDataTableの単純な拡張です。

public static List<DataRow> FullTextSearch(this DataTable dataTable, string[] keywords) 
{ 

var q = dataTable.AsEnumerable().Where<DataRow>(row => keywords.All(keyword =>row.ItemArray.Select(p => p.ToString()).Any<string>(s => s.Contains(keyword)))); 

return q.ToList(); 

} 
関連する問題