A Quicksilver-inspired JavaScript search that favors consecutive matching characters.
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test
LICENSE
README.md
mimetic_poly_alloy.js

README.md

Mimetic Poly-Alloy

A Quicksilver-inspired JavaScript search that favors consecutive matching characters.

Quicksilver is great to search using acronyms or shorthand. Where it's not a good fit is searching through lists of keywords.

The basic approach is to compute a score by counting the number of matched characters, add a point if it matches the start of a word, and return 2 raised to the power of the score.

"this is a test".score("test")  // 32

This search was calculated as such: 2(4 + 1).

"this is a test".score("is")  // 8
"this is a test".score("hi")  // 4

Here you can see that a match at the start of a word ranks much higher than in the middle. More examples can be found in the accompanying tests.

Usage

Mimetic Poly-Alloy uses the same API as Quicksilver. Drop the JavaScript file on your site and use the score method on a string of keywords. Give it a string to search for and it will return a score as a float.

list_of_keywords.score(search)

Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit.
  • Send me a pull request. Bonus points for topic branches.

Copyright

Copyright (c) 2010 Larry Marburger. See LICENSE for details.