Web 应用程序中的全文和标记搜索。我有哪些选择?

Full text and tagged search in web application. What are my options?

我需要在我的网站上按文本和标签搜索文章。我有哪些选择?
我可以使用 Google 自定义搜索之类的服务吗?我需要全文搜索引擎吗?其他解决方案?有什么优缺点?
我需要按相关性对结果进行排名。如果能有查询预测、建议、相关搜索等功能就好了

如果您的数据库是 SQL 服务器,那么您可以启用 full-text index,方法是在 SQL Server Management Studio 的对象资源管理器中右键单击 table 名称并选择Full-Text Index 如下面的屏幕截图所示。需要启用 full-text 搜索的 table 必须有一个 unique index 否则这将不起作用。

在您选择的列上创建 full-text 索引后,您可以在查询中使用特殊的 full-text 搜索功能。您可以在以下网址了解如何查询:MSDN Full-text Search Queries and Full-text Search in SQL Server`

您可以使用 Lucence.Net。它是开源的,支持排名 full-text 搜索...您只需将原始文本提供给其索引器即可;当您搜索某些内容时,它会向您显示与您的模式相关度最高的条目。

代价是它将您的数据索引到一个目录中,而不是重复使用 SQL 数据库。所以当你更新你的数据库时你需要sync/rebuild它的索引。

经过一些研究(感谢您的回答!)这是我的发现

  • MS SQL 全文索引
    它让我可以通过全文和标签进行搜索,但剩下的由我来实现(建议、突出显示等)。

  • 弹性搜索引擎
    它让我可以通过全文和标签、建议、突出显示和一切进行搜索。但我需要填充索引并使其与主数据库保持同步。

Google 站点搜索不是一个选项。它不能只搜索文章而不搜索其他任何内容。它不能按标签搜索。 (虽然,我没有检查)

至于Lucene.Net,Elasticsearch 建立在 Lucene 之上,为我处理了更多问题。另外它有很好的 RESTful API.

现在我正在试验 Elasticsearch。我想我会用它来做这个功能。