【问题标题】:Full-Text search in Sql server with multiple tables and ranking具有多个表和排名的 Sql server 中的全文搜索
【发布时间】:2013-10-16 00:26:06
【问题描述】:

我们有一个使用 SQL 服务器在 DNN 7.1 上运行的网站。我们实现了全文搜索来显示搜索结果。我们需要搜索几个表并将结果显示给用户。现在的实现是用户输入搜索词并点击搜索,后面的代码创建了几个线程来搜索不同的表,并合并数据。目前我们正在使用包含谓词,问题是没有排名,有时在合并后第一页上的结果不是最佳匹配。我认为我可以使用 containstable 并通过排名对结果进行排序,但我读到排名本身没有任何意义,它只是告诉了当前结果集中哪一个最匹配。但是在我的场景中,我有多个结果集,我怎么知道哪些是跨多个结果集的最佳匹配。还是我走错路了?处理这种情况的好方法是什么?我们需要改进响应时间以及更好的结果。非常感谢任何帮助。

【问题讨论】:

    标签: asp.net sql-server full-text-search dotnetnuke ranking


    【解决方案1】:

    这就是我们跨多个表实现全文搜索的方式:

    1) 创建一个新表,每列存储其他表的主键,另一列存储每个表中所有搜索字段的字符串连接值,另一列存储连接的校验和值价值观。

    2) 在这个新表上实现 FTI,并创建一个作业,仅当 binary_checksum 值不同时才定期同步/更新连接的搜索值

    3) 对这个新表使用 contains 谓词,并根据结果,根据返回的主键连接回对应的表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-01
      相关资源
      最近更新 更多