建立自动提示

时间:2010-11-11 14:35:17

标签: .net sql sql-server sql-server-2008 autocomplete

我正在构建一个自动提示。目前,目标应用程序是桌面应用程序,但其目的是将其构建为可靠的强大,然后将其包含在Web中。

现在我正处于项目的最初阶段:思考数据库(SQL Server 2008)

autosuggest将来自一个约40.000.000行的表。

现在我的选择是:全文搜索或构建一个像我现在要描述的表:

我的autosuggest项目:

a b c
1 2 3
x y z

结果表:

a b c              a b c
a b c              a c b
a b c              b a c
a b c              b c a
a b c              c a b
a b c              c b a

每个项目都是如此。

现在我的问题:

当我希望尽量减少对自动提示列表项目的搜索时,哪些是最好的?还有其他更好的吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

在我看来FULLTEXT会更好,即使你只需要完全匹配。

但是,即使您决定不使用FULLTEXT,为什么还需要索引所有排列?您可以按字母顺序(a, b, c)对其进行一次索引,然后在将它们作为查询参数提供之前,按相同顺序重新排列项目。

即使您的查询中显示C, D, O

,也应始终搜索O, C, D

答案 1 :(得分:0)

所以...你想根据部分输入查询一个包含40百万条记录的表,匹配列的任何部分(甚至多列),可能同时来自许多用户......我假设你是期待亚秒的响应时间。

你的数据库服务器最好是一个真正的野兽。

我强烈建议您重新考虑您的计划或至少限制用户的选择,例如将搜索限制为仅列的开头等。
但是如果你决定继续这个,全文是不可能的,除非你在你的应用程序中包含某种有趣的等待光标,以便在自动提示查询运行时招待用户。