Implementing a Citation Search Engine in JavaScript

The SCG web site includes a citation search engine called scgbib implemented on the server side. In the current implementation, users enter a simple text query, and the search engine displays all matching bibliography entries formatted as HTML.

The current database is a 5MB text file in bibtex format. The database resides in a git repo available at git://scg.unibe.ch/scgbib. The server caches the file and reloads it whenever it detects that the file has been updated.

Whenever the user enters a new query, or requests the results to be formatted in a different way (e.g., by author, by year, including abstracts, etc.), a new query is generated and evaluated on the server. This creates a considerable delay for each request.

The idea of this project is to reimplement the search engine on the client-side in JavaScript. The first time the search engine is started, the bibtex data file will be loaded into the client's browser. Afterward, every new query or formatting request will be evaluated directly on the client, which sahould result in a considerable speedup.

As part of the project, the following questions should be addressed:

See also: How to link to the SCG Bibliography

Contact: Oscar Nierstrasz