ASP.NET C# 在 SQL Server 数据库表中的搜索

4
我正在建立一个门户网站,它不是博客引擎,但与其非常相似。在SQL Server中,我有一个包含“文章”基础的数据表。这个Posts表包括以下列:
- ID(编号) - 作者 - 标签 - 标题 - Markdown文章内容
这是我第一次建立这样的门户网站,我想利用ASP.NET搜索来搜索这些行,最好使用除ID之外的所有属性(列)。另外,在长期考虑中,我正在考虑实现对这些帖子以及存储在不同表中的评论的搜索。
是否有任何开源实现或在线示例代码可以完成此搜索?如果没有,我该如何开始?你能给我指向一些教程和使用ASP.NET和C#完成此任务的示例代码吗?此外,Google(或其他公司)是否创建了任何工具来实现这些?
希望我的问题不会太宽泛或模糊。先感谢您!
5个回答

9

您是否正在使用 Sql Server 2008?如果是,您可以利用其中内置的全文搜索功能。然后只需将用户(经过消毒的)输入传递到 sql 查询中即可。

例如,以下查询将搜索作者、标题和文章内容字段以查找用户输入的文本。

SELECT Author, Title FROM Posts
WHERE CONTAINS((Author, Title, PostContent), @userInput);

SQL Server 2008支持不同的搜索方法, 如简单标记、加权词值、同义词、接近度和前缀搜索...非常厉害。


你能给我指一下有关那个的带有示例代码的教程吗?谢谢! - Maxim Zaslavsky
1
这里有一个相当详细的教程:http://www.simple-talk.com/sql/learn-sql-server/understanding-full-text-indexing-in-sql-server/ - womp

2

1

如果这是公开的,你可以让谷歌索引它。谷歌有一个设备,你也可以购买来做这个。

如果你不想自己动手,你可以看看:

  1. Sharepoint(常规[随Win 2003+附带]或门户服务器)
  2. SOLR(Apache Lucene项目)

如果你想自己动手,我建议你研究SQL Server分析服务,定期为你构建搜索索引。


0

我同意 Womp 的观点 - 全文索引是一个好的选择。如果你需要对除了数据库表之外的内容建立索引,也可以考虑使用 NLucene


0

我认为您应该尝试使用Lucene,它可以用于索引所有数据并构建一个非常好的搜索引擎。如果您需要,我可以提供更多信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接