Rails3 中的 Google Instant 式搜索

发布于 2024-11-15 23:04:07 字数 407 浏览 0 评论 0原文

在我的 Rails 应用程序中,我想要通过数据库中的 Customer 表进行增量搜索(如自动完成),查找名称,并在您键入时显示结果,< href="http://www.google.com/instant/" rel="nofollow">Google 即搜即得风格。

我对宝石或可能在这种情况下有所帮助的示例的简短研究没有提供任何有用的结果。
Rails 方式来实现这个吗?


我能想到的唯一问题是大约有。数据库中的 500k 记录(即使名称相关列已建立索引)可能会降低响应速度。
作为解决方案,ajax 请求可能仅在输入前 4-5 个字符后才会触发。

还有其他建议、线索、问题、想法、评论吗?

In my Rails app, I want to an incremental search (like autocomplete) through the Customer table in the DB, looking for names, and showing the results as you type, Google Instant-style.

My brief research for gems or examples that might help in this scenario didn't provide any useful results.
Is there a Rails way to implement this?


The only issue I can think of is that that having approx. 500k records in the DB (even if the name related columns are indexed) might slow down the responsiveness.
As a solution for that, the ajax request might be triggered only after typing in the first 4-5 characters.

Any other suggestions, leads, issues, ideas, comments?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

单身情人 2024-11-22 23:04:07

使用这个:Tokeninput

,这里是它的 Railscast:TokenInputrailscast

Use this: Tokeninput

and here is Railscast for it: TokenInput railscast

物价感观 2024-11-22 23:04:07

虽然我对 ruby​​ 一点也不熟悉,但我经常使用 jQuery UI 自动完成。您可以仅在输入一定数量的字符后触发它运行(请参阅“选项”中的 minLength )。

您还可以将其他参数传递给服务器端脚本。我传递了一个名为 Limit 的值,并将其设置为一个合理的值(大多数情况下为 10),我在 SQL 查询中使用它(其中 rownum <10),这样就不会破坏数据库。

While I'm not at all familiar with ruby, I use jQuery UI autocomplete often. You can trigger it to run only after a certain number of characters are typed (See minLength in 'options').

Also you can pass additional parameters to your server side scripting. I pass one called Limit and set it to a sensible value (10 in most cases), I use this in the SQL query (where rownum <10), that way you don't hammer the database.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文