C# 什么';实现搜索的最佳方式是什么?
我有一个要求,用户在搜索框中输入一些术语,然后单击“go”。 在如何实现跨越几个数据库表的动态搜索方面,有人有什么好的资源吗 谢谢,C# 什么';实现搜索的最佳方式是什么?,c#,.net,sql-server,search,C#,.net,Sql Server,Search,我有一个要求,用户在搜索框中输入一些术语,然后单击“go”。 在如何实现跨越几个数据库表的动态搜索方面,有人有什么好的资源吗 谢谢, Mike它被称为全文搜索 它被称为全文搜索 您可以创建一个SP,接收作为参数的搜索词,并将一些“选择”(记录集)重新运行到启动的程序中。它可以为每个表返回一个select,您可以根据需要对应用程序代码中的数据执行任何操作 如果只需要接收数据集,则可以使用表的并集创建视图,以合并公共架构中的列,然后以相同的方式过滤视图。在应用程序中,您将只收到一个数据集,其中包含在
Mike它被称为
全文搜索
它被称为
全文搜索
您可以创建一个SP,接收作为参数的搜索词,并将一些“选择”(记录集)重新运行到启动的程序中。它可以为每个表返回一个select,您可以根据需要对应用程序代码中的数据执行任何操作
如果只需要接收数据集,则可以使用表的并集创建视图,以合并公共架构中的列,然后以相同的方式过滤视图。在应用程序中,您将只收到一个数据集,其中包含在视图中合并并过滤的所有信息。您可以创建一个SP,该SP接收搜索词作为参数,并将一些“选择”(记录集)重新运行到启动的程序中。它可以为每个表返回一个select,您可以根据需要对应用程序代码中的数据执行任何操作
如果只需要接收数据集,则可以使用表的并集创建视图,以合并公共架构中的列,然后以相同的方式过滤视图。在应用程序中,您只会收到一个数据集,其中包含在视图中合并并过滤的所有信息。鉴于缺乏详细信息,这是一个非常复杂的问题。如果您只需要在几个表/列上进行简单搜索,那么一个单一的搜索SP就足够了 也就是说,如果您需要更多功能,例如:
- 搜索一大组表
- 支持大量数据
- 搜索单词的形式
- 逻辑运算
- 等
希望这能有所帮助。鉴于缺乏细节,这是一个相当复杂的问题。如果您只需要在几个表/列上进行简单搜索,那么一个单一的搜索SP就足够了 也就是说,如果您需要更多功能,例如:
- 搜索一大组表
- 支持大量数据
- 搜索单词的形式
- 逻辑运算
- 等
希望这能有所帮助。我要投你的一票。虽然SQLServer确实提供全文索引和一些搜索功能,但它并不是最好的搜索引擎。根据我的经验,它不会提供最好的结果或结果排名,除非你有大量的索引项(最少几万到几十万) 相比之下,Lucene显然是一个搜索引擎。这是一个反向索引,其行为非常类似于普通的互联网搜索引擎。Lucene提供了一个非常丰富的索引和搜索平台,以及一些用于查询索引的丰富C#和.NET API。甚至还有一个LINQtoLucene提供程序,允许您使用LINQ查询Lucene索引
使用Lucene的一个缺点是必须构建索引,这是一个独立于数据库运行的边带进程。您还必须编写自己的工具来管理索引。根据更新频率的不同,您的搜索索引可能不是100%最新的。一般来说,这不是一个很大的问题,但是如果你有足够的资源,Lucene索引将每隔几分钟递增更新一次,以保持“新鲜” 我要投你一票。虽然SQLServer确实提供全文索引和一些搜索功能,但它并不是最好的搜索引擎。根据我的经验,它不会提供最好的结果或结果排名,除非你有大量的索引项(最少几万到几十万) 相比之下,Lucene显然是一个搜索引擎。这是一个反向索引,其行为非常类似于普通的互联网搜索引擎。Lucene提供了一个非常丰富的索引和搜索平台,以及一些用于查询索引的丰富C#和.NET API。甚至还有一个LINQtoLucene提供程序,允许您使用LINQ查询Lucene索引
使用Lucene的一个缺点是必须构建索引,这是一个独立于数据库运行的边带进程。您还必须编写自己的工具来管理索引。根据更新频率的不同,您的搜索索引可能不是100%最新的。一般来说,这不是一个很大的问题,但是如果你有足够的资源,Lucene索引将每隔几分钟递增更新一次,以保持“新鲜” 好的,有一些人要求提供更多信息,所以让我提供一些。 我有几个表(即用户、公司、地址),我希望用户能够输入如下内容: “微软wa盖茨” 并列出一个结果列表,其中包含“盖茨”、“微软”和“华盛顿”的结果
Lucene看起来很酷。好的,有一些人要求提供更多信息,所以让我提供一些。 我有几个表(即用户、公司、地址),我希望用户能够