Skip to content

Latest commit

 

History

History
41 lines (29 loc) · 1.69 KB

README.md

File metadata and controls

41 lines (29 loc) · 1.69 KB

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