改进字符串搜索

时间:2011-12-17 03:27:25

标签: c# asp.net asp.net-mvc-3 sql-server-2008

我有一个名为“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

2 个答案:

答案 0 :(得分:2)

您是否考虑过Full Text Search(假设您的数据库是SQL服务器)?

答案 1 :(得分:2)

假设您有SQL Server

有几种方法可以提高性能。

  1. 使用覆盖列创建正确的非聚集索引。

    (阅读封面索引)

  2. SQL Server的全文搜索,但如果您想在线托管,则需要企业许可证
  3. 尝试使用Lucene索引