当前位置: 首页 > 面试题库 >

快速SQL Server搜索40M文本记录

严玉泽
2023-03-14
问题内容

我有一个SQL Server2005数据库,其中的表包含4000万条记录。每个记录包含一列,该列存储用逗号分隔的关键字列表。每个关键字都是字母和数字的组合。关键字最长为7个字符,平均每条记录有15个关键字。关键字在各行之间不是唯一的。

我想搜索全部或部分关键字。

我创建了全文索引,其中显示了328,245,708个唯一键数。搜索效率对于4个或更多字符的查询(在测试机上大约 100毫秒
)来说很好,但是对于3个或更少字符的查询(在测试机上最多 3s )来说太慢了。

我一直在尝试CONTAINSTABLE和具有类似结果的CONTAINS查询'[query]*'

我认为简短查询的性能会较慢,因为简短单词在不同记录之间的重复频率更高。

对结果进行排序不是至关重要的,我一直在尝试返回TOP X从中排序为Rank的结果CONTAINSTABLE。这不能提供理想的性能

对于简短查询,如何使此搜索更快?


问题答案:

您可能希望将其连接到SOLR或Sphinx之类的东西,并让专用的文本搜索引擎处理搜索功能。



 类似资料:
  • 如何在android Studio中快速搜索一个类文件或整个资源文件?

  • 我正在编写一种方法来搜索列表形式的文字文件,搜索用户输入的文字,但如果找到一个字母,程序将返回一个肯定的结果。例如,如果我搜索“f”,当没有单词时,它将返回字典中有一个单词“f”

  • 问题内容: 我正在应用程序中构建搜索,并且需要一种将从服务器中以JSON数组形式获取的建议放入快速搜索框下方显示的建议列表中的方法。 有没有一种简单的方法可以使快速搜索框读取此类资源? 当前,我正在尝试使用ContentProvider,但是接口方法清楚地表明应该在查询数据库以获取建议。我想如果您要搜索存储在应用程序内部的数据,则使用ContentProvider是正确的方法。但是我不确定,如果您

  • 我有一个包含100,000个集合的数组。每个集合包含1,000,000以下的自然数。我必须找到有序对的数量{m,n},其中0 例如,我有两个集合set1={1,2,4}set2={1,3}。5以下所有可能的有序数对是{1,2}、{1,3}、{1,4}、{2,3}、{2,4}和{3,4}。集合1中不同时存在的低于5的数的有序对是{1,3}、{2,3}和{3,4}。集合2中5以下缺失的有序对是{1,2

  • 本文向大家介绍Mysql Binlog快速遍历搜索记录及binlog数据查看的方法,包括了Mysql Binlog快速遍历搜索记录及binlog数据查看的方法的使用技巧和注意事项,需要的朋友参考一下 目标,开发人员说有个数据莫名其妙添加了,但是不知道是从哪里添加的,而且应用功能里面不应该添加这样的数据,为了查清楚来源,所以我就准备去binlog里面找了,但是binlog有好几个月的数,我这样一个个

  • 本文向大家介绍SQLServer地址搜索性能优化,包括了SQLServer地址搜索性能优化的使用技巧和注意事项,需要的朋友参考一下 这是一个很久以前的例子,现在在整理资料时无意发现,就拿出来再改写分享。 1.需求  1.1 基本需求: 根据输入的地址关键字,搜索出完整的地址路径,耗时要控制在几十毫秒内。  1.2 数据库地址表结构和数据:  表TBAddress    表数据    1.3 例子: