View on GitHub

Fuzzlogia

A simple Japanese-kanji-reading-aware fuzzy search in JavaScript

download .ZIPdownload .TGZ

Fuzzlogia

Build Status Coverage Status Code Climate Dependency Status devDependency Status

Fuzzlogia is a simple Japanese-kanji-reading-aware fuzzy search library written in JavaScript.

Fuzzlogia is still in the early development stage. The API is unstable.

Some examples:

var fl = require('fuzzlogia');

// => [ 'fuzzy' ]
fl.search('fzzuy', [ 'fuzzy', 'matching' ]);

// => [ '最高裁判所' ]
fl.search('さいこうさいばんしょ', [ '最高裁判所' ]);

// => [ '漢字は難しい' ]
fl.search('かんじ', [ '漢字は難しい' ]);

// => [ '銀河ヒッチハイクガイド' ]
fl.search('ぎんが', [ '電気羊', '銀河ヒッチハイクガイド' ]);

Features

Installation

Using npm:

npm install --save fuzzlogia

In browser

You can use Browserify or Webpack or whatever you want.

API

search(query, bucket, extractor, options)


query (type: String)

A query string.


bucket (type: Array)

An array of items to search for.


extractor (type: String|Function, default: identity)

A function to extract the string to be compared with query from each item. If extractor is a string, it will be used as a property name.

Examples:

// => [ { name: 'John' }]
fl.search('John', [ { name: 'John' } ], 'name');

// => [ { firstName: 'John', lastName: 'Mullins'} ]
fl.search('John', [ { firstName: 'John', lastName: 'Mullins'} ], function(item) {
  return item.firstName + ' ' + item.lastName;
});

options (type: Object, default: see below)

Options to control the behavior. The following options are supported:

Dictionaries

Fuzzlogia uses the following dictionaries:

Tools

Fuzzlogia contains the following tools:

TODOs

Contributing to Fuzzlogia

Pull requests are welcomed. Please add the relevant tests and ensure that it passes all the tests by executing npm test before submitting a pull request.

License

Copyright © 2015 Naoto Yokoyama

Distributed under the MIT license. See the LICENSE file for full details.