针对SQL数据库自动完成名称

Sea*_*ean 4 sql search full-text-search scalability autocomplete

我的Web应用程序中有一个文本字段,我想在其中完成自动填充(例如,用户键入“ St”,我可以建议“ Steve”)。我要匹配的名称在用户的SQL数据库表中。我的问题是,如何使这种方式能够扩展到大量用户?

  1. 有数据库全文搜索或诸如Lucene之类的数据库。这样甚至适合于“开头为”查询吗?

  2. 有没有办法为“开头为”类型的搜索设置普通的数据库索引?

  3. 还有其他我完全想不到的想法吗?

任何帮助,将不胜感激。谢谢。

eri*_*len 5

只要您在名称列上有索引,这些就可以完成工作。

SQL Server:

SELECT TOP 10 name FROM names WHERE name LIKE 'St%'
Run Code Online (Sandbox Code Playgroud)

MySQL(根据Bart J):

SELECT name FROM names WHERE name LIKE 'St%' LIMIT 10
Run Code Online (Sandbox Code Playgroud)

甲骨文:

SELECT name FROM names WHERE name LIKE 'St%' AND rownum < 10
Run Code Online (Sandbox Code Playgroud)