micheleriva / gosearch

In-memory, full-text search engine built in Go. For no particular reason.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GoSearch

Motivation

I just wanted to learn how to write a search engine from scratch without any prior experience.

Features

  • Index content
  • Search content
  • Index content REST API
  • Search content REST API
  • Delete content
  • Delete content REST API
  • Update content
  • Update content REST API

REST API

Index a new document:
curl -X POST http://localhost:8080/v1/insert -d "{\"content\": \"lorem ipsum\"}"

Search through all documents:
curl -X GET http://localhost:8080/v1/search?q=lorem

Golang API

First install the package via Go Mod:

go get github.com/micheleriva/gosearch

Then you can use its native Golang APIs to index and search for documents:

package main

import (
	"fmt"
	"github.com/micheleriva/gosearch"
)

func main() {
  gosearch.IndexDocument("Love is old, love is new, love is all, love is you")
  gosearch.IndexDocument("What is love? Baby don't hurt me, no more.")
  
  results := gosearch.Search("love")
  fmt.Println(results)
  // => ["Love is old, love is new, love is all, love is you", "What is love? Baby don't hurt me, no more."]
}

License

gosearch is licensed under the MIT license, but seriosuly, don't use it. Or do it at your own risk.

About

In-memory, full-text search engine built in Go. For no particular reason.

License:MIT License


Languages

Language:Go 94.6%Language:Makefile 5.4%