
Senna is an embeddable fulltext search engine, which you can use in
conjunction with various scripting languages and databases. Senna is an
inverted index based engine, and combines the best of n-gram indexing and
word indexing to achieve fast, precise searches. While senna codebase is
rather compact it is scalable enough to handle large amounts of data and
queries.

1. Major features

 1) Embeddable

 Senna can easily be embbeded into a database, or can be used directly
 from within programs written in C, ruby, perl, etc.

 Whereas a majority of search engines are comprised of a data file (the
 actual text that is being searched) and an inverted index file, senna uses
 only an inverted index file and delegates the responsibility to store and
 manage data to the system that Senna is being embedded into (such as a
 database). This allows Senna to avoid having to duplicate efforts to manage
 the actual data.

 Senna is also designed such that no locking is required when performing
 concurrent read/writes. This greatly reduces the impact on the embedding
 system's performance

 2) High Accuracy

 Senna uses the best breed of word-based index and n-gram index. This means
 that Senna's indices are relatively small and has a high precision, while
 at the same time keeping a high recall on the search results.

 By default Senna stores terms into an inverted index file (word-based
 index) after performing morphological analysis on the sentences. But by
 combining a fast, partial match search using a dictionary, Senna is also
 able to match entries that are usually missed by ordinary word-based index
 searches.

 3) Incremental Updates

 Senna allows incremental updates to an already existing index. This allows
 users to dynamically add/edit/delete index entries without having to
 rebuild the entire index License

 This program is free software; you can redistribute it and/or modify it
 under the terms of the GNU General Public License as published by the Free
 Software Foundation; either version 2 of the License, or (at your option)
 any later version.

 This program is distributed in the hope that it will be useful, but WITHOUT
 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
 more details.

2. Requirements

    * OS
          o Linux
    * Requirements
          o MeCab-0.80 or later (for word indexing.)
                + <URL:http://chasen.org/~taku/software/mecab/>
          o Ruby 1.8.1 or later (for Ruby binding.)
                + <URL:http://www.ruby-lang.org/>
          o MySQL 4.0 series(4.0.22 or later) (for MySQL binding.)
                + <URL:http://www.mysql.com/>

3. Download

 you can download the source code of Senna via subversion with following operation.

     svn co svn://dev.razil.jp/senna/trunk senna 

 also you can browse the source code in following pages.

     http://dev.razil.jp/svnweb/senna/ 

4. Documents

 see the documents in doc directory.

5. Contact

  <senna at razil.jp>
  Brazil ltd.
