All Projects → flosch → Trindex

flosch / Trindex

Licence: mit
Trigram search library for Go

Programming Languages

go
31211 projects - #10 most used programming language

trindex

GoDoc Build Status gratipay

trindex is a trigram search library for terms written for and in Go (in alpha stage!). It provides a very simple API and ships with its own database.

I put up a demo page online using trindex. I indexed all German wikidata lemmas (4064962 titles in total) and made them available for search: https://www.florian-schlachter.de/trindex/

The Wikidata example (build & query) is in the repository as well: examples/wikidata.

idx := trindex.NewIndex("trindex.db")
defer idx.Close()

dataset := []string{
    "Mallorca", "Ibiza", "Menorca", "Pityusen", "Formentera", 
    "Berlin", "New York", "Yorkshire",
}

for _, data := range dataset {
    id := idx.Insert(data)
    // Use ID to connect the term with the associated dataset;
    // for example save the ID in your SQL database about travel destinations
}

results := idx.Query("malorka", 3, 0.3)

// Returns a sorted list of 3 results including the ID and
// a confidence number ("Similarity"; 1 = best match) >= 0.3 

trindex relies heavily on caching; it's API is safe for concurrent use. Please make sure that you'll call idx.Close() in any case on application shutdown (to flush inserted data to disk).

Related blog posts

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].