2011-12-17 162 views
0

我有一個名爲「Articles」的表,其中包含一個Article_body字段,該字段可能包含每個記錄超過1000個字符。 ,我有一個搜索網頁中插入任何字符串搜索這些文章和檢索所有包含在他們的Article_body場這個字符串。我是正在做這個使用.contain方法如下物品: -改善字符串搜索

**public IQueryable<Question> searcharticles(string q) 
    { 
     return from a in entities1.articles 
      where (a.article_body.Contains(q) 
select u;}** 

目前搜索工作正常,但我害怕,當我將有數以千計的文章,這可能無法有效地工作,所以我有以下兩個問題: -

  1. 有沒有更好的方式做搜索?。
  2. 如果我在article_body字段中添加索引,它會加快搜索速度(我不這麼認爲!!)? 在此先感謝您的幫助。 BR
+1

你有沒有考慮像[Lucene的。淨(http://incubator.apache.org/lucene.net/)?這可能是矯枉過正,但它具有很高的可擴展性和高性能。 – Amy 2011-12-17 04:13:46

回答

2

假設你有SQL Server

有幾種方法可以提高性能。

  1. 用覆蓋列創建適當的非聚集索引。

    (閱讀有關覆蓋指數)的SQL Server

  2. 全文檢索,但這需要企業許可證,如果你想舉辦網上
  3. 嘗試的Lucene索引
+0

帶有高級工具的SQL Server 2008 R2 Express版本中提供了全文搜索。所以有一個FTS的免費版本,它可以處理高達10GB的數據庫。 – 2011-12-17 21:30:49