首页 文章

Sql server 2008-使用'+(and)','-(and not)'和'space(or)'跨多个表进行全文搜索

提问于
浏览
1

我们正在项目中实施全文搜索 . 这就像谷歌搜索功能,用于查找多个表格的记录 . 我们的数据库结构就像我们一样

Person PersonID FirstName LastName出生日期

PersonAddress AddressID PersonID Address1 Address2

PersonPhoneNo PhoneID PersonID PhoneNo

Person表与PersonAddress和PersonPhoneNo有一对多的关系 . 现在我们的问题是我们想要搜索'xyz new york' . 全文搜索就像留在纽约的人xyz,或者人名是xyz,姓氏是纽约,或者人地址是xyz,电话是纽约 . 为此我们确定了一种方法 .

为此,我们必须制作具有'Name Address1 Address2 PhoneNo'组合的压缩列 . 并且必须添加此计算列全文搜索目录 . 我们使用以上三列的连接制作了一个视图 . 并在全文搜索目录中添加此列视图 .

但问题是如果我们将在其上创建全文索引,则视图不能支持外连接 .

2 回答

  • 1

    我们提出了这个解决方案:我们创建了一个存储库表并使用触发机制插入数据,并在该表上组合所有列的计算列 . 然后我们在那些列上创建了全文索引 . 所以这项工作对我们有益 . 只需根据应用程序和规范化数据库找到合适的触发机制 .

  • 0

    我会使用Lucene作为全文引擎 . 您可以轻松地在一个lucene文档中存储多个字段,允许您进行“xyz city:london”之类的搜索 .

    您是否需要使用纯mssql解决方案?尝试创建应用全文索引的索引视图 .

相关问题