Full text search engine for JS environments
JavaScript CSS
Latest commit dafef3c Jul 8, 2014 @shibukawa Merge pull request #22 from tuchida/work-non-webworker
Do not work non-Web Worker version

README.rst

Oktavia

https://travis-ci.org/shibukawa/oktavia.png?branch=master

https://david-dm.org/shibukawa/oktavia.png

https://david-dm.org/shibukawa/oktavia/dev-status.png

version:1.0

Synopsis

Oktavia is a full text search engine for JavaScript environment. It uses FM-Index.

Usage

See following pages:

English Site: http://oktavia.info Japanese Site: http://oktavia.info/ja/

Basic Structure

oktavia command generates JavaScript file(searchindex.js) that includes index and search runtime.

HTML includes the following files:

  • jquery.js : jQuery
  • oktavia-jquery-ui.js : JS UI code. that loads searchindex.js and invokes runtime.
  • searchstyle.css : Style file for JS UI.

When the web page is loaded, oktavia-jquery-ui.js reads searchindex.js asynchronously as WebWorker (because some index file is big to load synchronously). oktavia-jquery-ui.js calls search runtime and shows results.

Current Status

It can work as the search engine.

Now it is an alpha version. Not optimized yet.

I am planning to implement following features:

  • Word Splitter option
    • Standard
    • CJK
  • Index Generator
    • CSV (column, line)
    • reST (sections, paragraph, code-block, etc...)
  • Custom schema support

Development

JSX

Don't be afraid JSX If you have an experience of JavaScript, you can learn JSX quickly.

  • Static type system and unified class syntax.
  • All variables and methods belong to class.
  • JSX includes optimizer. You don't have to write tricky unreadalbe code for speed.
  • You can use almost all JavaScript API as you know. Some functions become static class functions. See reference.

Repository

Setup

To create development environment, call following command:

$ npm install

Build

$ npm build

Run test

$ npm test

Generate API reference

$ grunt doc

License

This source code is released under MIT License.

Thanks

BitVector, WaveletMatrix, FM-Index included in this repository are ported from Shellinford (developed by @echizen_tm). Thank you!