jQuery UI comes with an autocomplete module that you can supply a source to (the source just outputs JSON for records that match the given thing typed). I've heard of using Redis, some cron-job-initiated indexing, and a fast service layer to populate it quickly enough that you can't tell it's coming from a request - of course, you'd have to have a redis server big enough to store however many entries you have. If that level of speed isn't important to you then the source can always come from a typical database.


-----Original Message-----
From: Code for Libraries [mailto:[log in to unmask]] On Behalf Of Cary Gordon
Sent: Monday, July 08, 2013 8:06 AM
To: [log in to unmask]
Subject: Re: [CODE4LIB] Lightweight Autocomplete Application

I may be missing some subtlety here, but it sounds like you are looking for a jQuery (Javascript) autocomplete script with an AJAX back end. This would load the vocabulary in the background, typically starting at page load.

This works fine as long as the vocabulary is of a reasonable size. If we are talking tens of millions of entries, it is not going to work so well, and if you have to look up terms in real time as you type, I don't know of any client/server tool that will be fast enough.



On Jul 8, 2013, at 7:37 AM, "Anderson, David (NIH/NLM) [E]" <[log in to unmask]> wrote:

> I'm looking for a lightweight autocomplete application for data entry. Here's what I'd like to be able to do:
> *         Import large controlled vocabularies into the app
> *         Call up the app with a macro wherever I'm entering data
> *         Begin typing in a term from the vocabulary, get a list of suggestions for terms
> *         Select a term from the list and have it paste automatically into my data entry field
> Ideally it would load and suggest terms quickly. I've looked around, but nothing really stands out. Anyone using anything like this?
> Thanks,
> David
> --
> David Anderson
> Systems Librarian
> Technical Services Division
> National Library of Medicine
> National Institutes of Health
> Email: [log in to unmask]<mailto:[log in to unmask]>
> Phone: 301-402-0033