【问题标题】:Searching in multiple tables using MS SQL Server 2000使用 MS SQL Server 2000 在多个表中搜索
【发布时间】:2011-04-12 01:57:44
【问题描述】:

我们有一个数据库,其中包含大量有关人员的信息。我不会发布整个数据库结构,因为它太大了,但它看起来像这样:



身份证
名称
街道
城市
状态
国家

语言
语言代码
语言

兴趣
身份证
上次更改者
上次更改时间

本地化兴趣
兴趣ID
语言代码
说明

个人兴趣
个人ID
兴趣ID


现在,这只是一个小例子。在我们的数据库中,我们有大约 8-9 个本地化表(如兴趣表)可以链接到一个人。一个人可以有多个兴趣,一个人可以有多个工作,一个人可以有多个教育,一个人可以有多个经验,...

我必须建立一个搜索功能。假设您输入“tom”作为搜索词。这应该列出所有在他们的姓名、街道、城市、州、国家、在他们的一项兴趣、一项工作、一项教育、一项经验或一项其他链接表。

如果您输入多个单词进行搜索(例如“tom php”),它应该列出所有姓名中带有“tom”的人,街道,城市,州,国家,他们的兴趣之一,在他们的一项工作中,在他们的一项教育中,在他们的一项经验中或在其他链接表之一中在他们的姓名、街道、城市、州、国家/地区中的“php”中,他们的兴趣、他们的一项工作、一项教育、一项经验或其他链接表之一。

目前 Person 表中大约有 4,500 条记录,如果我将 Person 与我必须搜索的所有表进行外连接,则大约有 1,300,000 条记录和 40-50 个字段可供搜索。

我应该如何解决这个问题才能使性能可以接受?客户期望在速度和易用性方面“与 Google 类似”。

我们使用的是 MS SQL Server 2000 和 ASP.NET 2.0。必须将搜索功能添加到现有应用程序中,并且不能更改技术或数据库结构。

【问题讨论】:

  • 听起来像是索引视图的案例,由存储过程搜索。添加索引视图是“选项”吗?你并没有真正改变结构。
  • 我认为我们必须使用外连接来构建该视图(当他没有工作或兴趣时仍然必须找到一个人)并且您不能在具有外连接的视图上放置索引加入。

标签: asp.net sql-server search sql-server-2000 asp.net-2.0


【解决方案1】:

您可以在涉及的表/字段中实现全文搜索,然后基于它创建查询。您可以找到快速信息here

【讨论】:

  • 谢谢。我们会试一试。
  • 我们的数据库在共享服务器上运行,所以很遗憾我们无法使用全文索引。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
相关资源
最近更新 更多