Android 12.0.0 release 26
[automerger skipped] Mark ab/7061308 as merged in stage. am: 189dd28362 -s ours am: f4457bc8f0 -s ours

am skip reason: Change-Id Idfe5f25234cd6e6bd641d912524681304fa08752 with SHA-1 c9570b2a21 is in history

Original change: undetermined

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I0e9307b76dfe9e0b9b5f1ad20ab52e84cc5f1b8b
tree: f36e0f9da5855a1abb42f107a4e0733d79080e65
  1. bindings/
  2. docs/
  3. include/
  4. lib/
  5. m4/
  6. tests/
  7. tools/
  8. vs2008/
  9. .gitignore
  10. Android.bp
  11. AUTHORS
  12. configure.ac
  13. COPYING.md
  14. Makefile.am
  15. marisa.pc.in
  16. METADATA
  17. MODULE_LICENSE_BSD
  18. README.md
README.md

README

Project name

marisa-trie

Project summary

MARISA: Matching Algorithm with Recursively Implemented StorAge

Latest version

0.2.6

Description

Matching Algorithm with Recursively Implemented StorAge (MARISA) is a static and space-efficient trie data structure. And libmarisa is a C++ library to provide an implementation of MARISA. Also, the package of libmarisa contains a set of command line tools for building and operating a MARISA-based dictionary.

A MARISA-based dictionary supports not only lookup but also reverse lookup, common prefix search and predictive search.

  • Lookup is to check whether or not a given string exists in a dictionary.
  • Reverse lookup is to restore a key from its ID.
  • Common prefix search is to find keys from prefixes of a given string.
  • Predictive search is to find keys starting with a given string.

The biggest advantage of libmarisa is that its dictionary size is considerably more compact than others. See below for the dictionary size of other implementations.

  • Input
    • Source: enwiki-20121101-all-titles-in-ns0.gz
    • Contents: all page titles of English Wikipedia (Nov. 2012)
    • Number of keys: 9,805,576
    • Total size: 200,435,403 bytes (plain) / 54,933,690 bytes (gzipped)
ImplementationSize (bytes)Remarks
darts-clone376,613,888Compacted double-array trie
tx-trie127,727,058LOUDS-based trie
marisa-trie50,753,560MARISA trie

Documentation

Build instructions

You can get the latest version via git clone. Then, you can generate a configure script via autoreconf -i. After that, you can build and install libmarisa and its command line tools via configure and make. For details, see also documentation in docs.

$ git clone https://github.com/s-yata/marisa-trie.git
$ cd marisa-trie
$ autoreconf -i
$ ./configure --enable-native-code
$ make
$ make install

Source code license

  • The BSD 2-clause License
  • The LGPL 2.1 or any later version