Minimalistic search engine used by AcoustID for searching in audio fingerprints
C++ C CMake
Switch branches/tags
Nothing to show
Permalink
Failed to load latest commit information.
cmake/modules Build GTest from sources Oct 20, 2012
doc
src Fix some functions with missing returns Apr 18, 2015
.gitignore
.travis.yml Add .travis.yml Oct 20, 2012
CMakeLists.txt Build GTest from sources Oct 20, 2012
LICENSE
README
run-tests.sh Don't store file names separately Feb 7, 2011

README

Acoustid Index
==============

Acoustid Index is a "number search engine". It's similar to text search
engines, but instead of searching in documents that consist of words,
it searches in documents that consist of 32-bit integers.

It's a simple inverted index data structure that doesn't do any kind of
processing on the indexed documents. This is useful for searching in
Chromaprint[1] audio fingerprints, which are nothing more than 32-bit
integer arrays.

  [1] http://acoustid.org/chromaprint

Reindexing from the Acoustid database:

 $ echo "COPY (SELECT id, acoustid_extract_query(fingerprint) FROM fingerprint) TO stdout DELIMITER '|' " \
       | psql -U acoustid acoustid | ./fpi-import -d idx/ -c -o

 1. Stop importing
 2. UPDATE fingerprint_index_queue SET fingerprint_id = (SELECT max(id) FROM fingerprint);
 3. Index the database
 4. Start importing

Running the server:

$ ./fpi-server 
Listening on "127.0.0.1" port 6080 

Simple client session:

$ telnet 127.0.0.1 6080
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
begin
OK 
insert 1 368308215,364034037,397576085,397509509,393249669,389054869
OK 
insert 2 1574172159,1598222797,1564660173,1564656069,1564537317,1565584741
OK 
insert 3 1130316157,1096749341,1075786015,1075655999,1075656047,1079977343
OK 
commit
OK 
search 1130316157,397509509,393249669,389054869
OK 1:3 3:1
quit
OK
Connection closed by foreign host.