Categorygithub.com/go-ego/riot
modulepackage
0.0.0-20201013133145-f4c30acb3704
Repository: https://github.com/go-ego/riot.git
Documentation: pkg.go.dev

# README

Riot search

CircleCI Status Appveyor codecov Build Status Go Report Card GoDoc GitHub release Join the chat at https://gitter.im/go-ego/ego

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

简体中文

Features

Requirements

Go version >= 1.8

Dependencies

Riot uses go module or dep to manage 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

Authors

License

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

# Packages

Package core is riot core */.
No description provided by the author
Package engine is riot engine */.
No description provided by the author
No description provided by the author
Package net is riot net */.
No description provided by the author
Package types is riot types */.
No description provided by the author

# Functions

No description provided by the author
No description provided by the author
CPUInfo returns the cpu info.
CPUPercent returns the amount of use cpu in percent.
DiskFree returns the amount of free disk in bytes.
DiskPercent returns the amount of use disk in percent.
DiskTotal returns the amount of total disk in bytes.
DiskUsed returns the amount of use disk in bytes.
GetVersion get the riot version.
KernelVer returns the kernel version as a string.
MemFree returns the amount of free memory in bytes.
MemPercent returns the amount of use memory in percent.
MemTotal returns the amount of total memory in bytes.
MemUsed returns the amount of used memory in bytes.
New create a new engine with mode.
NewEngine create a new engine.
No description provided by the author
Platform returns the platform name and OS Version.
PlatformInfo fetches system platform information.
ToGB bytes to gb.
ToKB bytes to kb.
ToMB bytes to mb.
Try handler(err).
Uptime returns the system uptime in seconds.

# Constants

DefaultPath default db path.
NumNanosecondsInAMillisecond nano-seconds in a milli-second num.
StoreFilePrefix persistent store file prefix.
Version get the riot version.

# Variables

InitDiskUsed init disk used.
InitMemUsed init mem used.
No description provided by the author
No description provided by the author

# Structs

Engine initialize the engine.
No description provided by the author
No description provided by the author
StopTokens stop tokens map.

# Type aliases

TMap defines the tokens map type map[string][]int.