我们有一个数据库,里面有很多关于人的信息。我不会发布整个数据库结构,因为它太大了,但是它看起来如下所示:
Person
ID
名字
街道
城市
状态
国家/地区
语言
LangCode
语言
利息
ID
LastChangedBy
LastChangedOn
LocalizedInterest
InterestID
LangCode
描述
PersonInterest
PersonID
InterestID
现在,这只是一个小例子。在我们的数据库中,我们有大约8-9个本地化的表(比如兴趣)可以链接到。一个人可以有多种兴趣,一个人可以有多个工作,一个人可以有多种教育,一个人可以有多种经历,.
我得建立一个搜索功能。假设你输入"tom“作为搜索词。这应该列出所有“汤姆”的名字,街道,城市,州,国家,他们的利益之一,他们的一份工作,在他们的教育,在他们的经验或在另一张相互关联的桌子。
如果您输入多个单词来搜索(例如。( "tom php"),它应该列出所有以“汤姆”的名义、街道、城市、州、国家、他们的利益、一份工作、一项教育、一项经历或其他链接表格和 "php“以其名义、街道、城市、州、国家、在他们的一项利益、一项工作、一项教育、一项经历或另一项相互关联的表格中的所有”汤姆“的名单。
目前Person表中大约有4500条记录,如果我将Person与所有必须搜索的表进行外部连接,则大约有1,300,000条记录和40-50个字段可供搜索。
我应该如何处理这个问题,这样性能才能被接受?客户端期望在速度和易用性方面“类似于谷歌”。
我们使用的是2000和ASP.NET 2.0。搜索功能必须添加到现有的应用程序中,更改技术或数据库结构不是一种选择。
发布于 2010-09-14 09:43:59
您可以在涉及的表/字段中实现全文搜索,然后基于它创建一个查询。你可以找到快速信息这里。
https://stackoverflow.com/questions/3707658
复制相似问题