【问题标题】:Sql server 2008- Full text search across multiple table with '+(and)', '-(and not)' and 'space(or)'Sql server 2008-使用'+(and)','-(and not)'和'space(or)'跨多个表进行全文搜索
【发布时间】:2010-12-10 05:12:41
【问题描述】:

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

个人ID 名 姓 生日

人员地址 地址ID 个人ID 地址1 地址2

PersonPhoneNo 电话号码 个人ID 电话号码

Person 表与 PersonAddress 和 PersonPhoneNo 是一对多的关系。 现在我们的问题是我们想要像“xyz+new york”这样的搜索。全文搜索将其视为住在纽约的人 xyz,或者人的名字是 xyz,姓氏是纽约,或者人的地址是 xyz,电话是纽约。为此,我们确定了一种方法。

为此,我们必须制作具有“Name+Address1+Address2+PhoneNo”组合的compted列。并且必须添加此计算列全文搜索目录。我们使用上述三列的连接制作了一个视图。并在全文搜索目录中添加该视图。

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

【问题讨论】:

    标签: sql sql-server tsql sql-server-2008 full-text-search


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 但是在索引视图中我们不能使用左外连接。我们有一对多的关系。所以请给我一些想法如何在这些表上创建索引视图。??
      猜你喜欢
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2015-02-17
      • 2021-05-11
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多