GitXplorerGitXplorer
e

go-sql-lsh

public
27 stars
4 forks
0 issues

Commits

List of commits on branch master.
Unverified
6b11c76e7138fc46806b92673a7b1cbde73a0955

able to use existing table when creating new lsh

eekzhu committed 9 years ago
Unverified
9a99f7bd3069392f05e01d2ef2f857714f67d57f

remove logging

eekzhu committed 9 years ago
Unverified
50489744f56cd97db8030c7f6a09682c91557729

fix bug in scan

eekzhu committed 9 years ago
Unverified
a3c1913ff398ab0e650b426fb7f0f40fd0511395

add scan

eekzhu committed 9 years ago
Unverified
e36c61704df25401523bbfd6e34798977fc6e361

use generic uint for signature

eekzhu committed 9 years ago
Unverified
715a5b7ee32ffe7e6200dd7a146a7ba38b6e81c4

adapt to database signed int type

eekzhu committed 9 years ago

README

The README file for this repository.

go-sql-lsh

Build Status

This is an experimental implementation of Locality Sensitive Hashing (LSH) index using relational databases. This library does not implement any specific locality-sensitive hash function family, but provides a generic storage backend for the hash values. See Documentation for details.

Currently only Sqlite and PostgreSQL are supported.

To install:

go get github.com/ekzhu/go-sql-lsh

To run the tests and benchmarks, you need to install the Go libraries for PostgreSQL and Sqlite3:

go get github.com/lib/pq
go get github.com/mattn/go-sqlite3

A performance comparison is shown in the table below. Numbers are average query times, in millisecond. There are 10,000 signatures in the index for all runs.

Signature Size Sqlite PostgreSQL
128 (k=2, l=64) 60.59 35.34
256 (k=4, l=64) 76.92 36.09
512 (k=8, l=64) 95.07 47.46