tangs b030ce89ca openbilibili 5 tahun lalu
..
core b030ce89ca openbilibili 5 tahun lalu
store b030ce89ca openbilibili 5 tahun lalu
types b030ce89ca openbilibili 5 tahun lalu
utils b030ce89ca openbilibili 5 tahun lalu
BUILD.bazel b030ce89ca openbilibili 5 tahun lalu
CONTRIBUTING.md b030ce89ca openbilibili 5 tahun lalu
Gopkg.lock b030ce89ca openbilibili 5 tahun lalu
Gopkg.toml b030ce89ca openbilibili 5 tahun lalu
LICENSE b030ce89ca openbilibili 5 tahun lalu
README.md b030ce89ca openbilibili 5 tahun lalu
README_zh.md b030ce89ca openbilibili 5 tahun lalu
appveyor.yml b030ce89ca openbilibili 5 tahun lalu
circle.yml b030ce89ca openbilibili 5 tahun lalu
counters.go b030ce89ca openbilibili 5 tahun lalu
engine.go b030ce89ca openbilibili 5 tahun lalu
indexer_worker.go b030ce89ca openbilibili 5 tahun lalu
info.go b030ce89ca openbilibili 5 tahun lalu
ranker_worker.go b030ce89ca openbilibili 5 tahun lalu
riot.go b030ce89ca openbilibili 5 tahun lalu
riot_pkg.go b030ce89ca openbilibili 5 tahun lalu
segment.go b030ce89ca openbilibili 5 tahun lalu
stop_tokens.go b030ce89ca openbilibili 5 tahun lalu
store_worker.go b030ce89ca openbilibili 5 tahun lalu

README.md

Riot search

CircleCI Status Appveyor codecov Build Status Go Report Card GoDoc Release

Go Open Source, Distributed, Simple and efficient full text search engine.

简体中文

Features

Riot v0.10.0 was released in Nov 2017, check the Changelog for the full details.

Requirements

Go version >= 1.8

Vendored Dependencies

Riot uses dep to vendor dependencies, but we don't commit the vendored packages themselves to the Riot git repository. Therefore, a simple go get is not supported because the command is not vendor aware.

Please manage it with dep, run dep ensure, to clone dependencies.

Installation/Update

go get -u github.com/go-ego/riot

Build-tools

go get -u github.com/go-ego/re 

re riot

To create a new riot application

$ re riot my-riotapp

re run

To run the application we just created, you can navigate to the application folder and execute:

$ cd my-riotapp && re run

Usage:

Look at an example

package main

import (
	"log"

	"github.com/go-ego/riot"
	"github.com/go-ego/riot/types"
)

var (
	// searcher is coroutine safe
	searcher = riot.Engine{}
)

func main() {
	// Init
	searcher.Init(types.EngineOpts{
		// Using:             4,
		NotUseGse: true,
		})
	defer searcher.Close()

	text := "Google Is Experimenting With Virtual Reality Advertising"
	text1 := `Google accidentally pushed Bluetooth update for Home
	speaker early`
	text2 := `Google is testing another Search results layout with 
	rounded cards, new colors, and the 4 mysterious colored dots again`
	
	// Add the document to the index, docId starts at 1
	searcher.Index(1, types.DocData{Content: text})
	searcher.Index(2, types.DocData{Content: text1}, false)
	searcher.IndexDoc(3, types.DocData{Content: text2}, true)

	// Wait for the index to refresh
	searcher.Flush()
	// engine.FlushIndex()

	// The search output format is found in the types.SearchResp structure
	log.Print(searcher.Search(types.SearchReq{Text:"google testing"}))
}

It is very simple!

Use default engine:

package main

import (
	"log"

	"github.com/go-ego/riot"
	"github.com/go-ego/riot/types"
)

var (
	searcher = riot.New("zh")
)

func main() {
	data := types.DocData{Content: `I wonder how, I wonder why
		, I wonder where they are`}
	data1 := types.DocData{Content: "所以, 你好, 再见"}
	data2 := types.DocData{Content: "没有理由"}
	searcher.Index(1, data)
	searcher.Index(2, data1)
	searcher.Index(3, data2)
	searcher.Flush()

	req := types.SearchReq{Text: "你好"}
	search := searcher.Search(req)
	log.Println("search...", search)
}

Look at more Examples

Look at Store example

Look at Logic search example

Look at Pinyin search example

Look at different dict and language search example

Look at benchmark example

Riot search engine templates, client and dictionaries

Donate

Supporting riot, buy me a coffee.

Paypal

Donate money by paypal to my account vzvway@gmail.com

License

Riot is primarily distributed under the terms of the Apache License (Version 2.0), base on wukong.