我们正在项目中实施全文搜索 . 这就像谷歌搜索功能,用于查找多个表格的记录 . 我们的数据库结构就像我们一样
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 回答
我们提出了这个解决方案:我们创建了一个存储库表并使用触发机制插入数据,并在该表上组合所有列的计算列 . 然后我们在那些列上创建了全文索引 . 所以这项工作对我们有益 . 只需根据应用程序和规范化数据库找到合适的触发机制 .
我会使用Lucene作为全文引擎 . 您可以轻松地在一个lucene文档中存储多个字段,允许您进行“xyz city:london”之类的搜索 .
您是否需要使用纯mssql解决方案?尝试创建应用全文索引的索引视图 .