riot: github.com/go-ego/riot Index | Files | Directories

package riot

import "github.com/go-ego/riot"

Package riot is riot engine

Package riot full text search engine

Index

Package Files

counters.go engine.go indexer_worker.go info.go ranker_worker.go riot.go riot_pkg.go segment.go stop_tokens.go store_worker.go test_utils.go

Constants

const (
    // Version get the riot version
    Version string = "v0.10.0.425, Danube River!"

    // NumNanosecondsInAMillisecond nano-seconds in a milli-second num
    NumNanosecondsInAMillisecond = 1000000
    // StoreFilePrefix persistent store file prefix
    StoreFilePrefix = "riot"

    // DefaultPath default db path
    DefaultPath = "./riot-index"
)

Variables

var (

    // InitMemUsed init mem used
    InitMemUsed uint64
    // InitDiskUsed init disk used
    InitDiskUsed uint64
)
var (
    Req1 = types.SearchReq{Text: reqText}
)
var (
    TestIndexOpts = rankEngineOpts(rankOptsMax10)
)

func AddDocs Uses

func AddDocs(engine *Engine)

func AddDocsWithLabels Uses

func AddDocsWithLabels(engine *Engine)

func CPUInfo Uses

func CPUInfo(args ...int) (string, error)

CPUInfo returns the cpu info

func CPUPercent Uses

func CPUPercent() ([]float64, error)

CPUPercent returns the amount of use cpu in percent.

func DiskFree Uses

func DiskFree() (uint64, error)

DiskFree returns the amount of free disk in bytes.

func DiskPercent Uses

func DiskPercent() (string, error)

DiskPercent returns the amount of use disk in percent.

func DiskTotal Uses

func DiskTotal() (uint64, error)

DiskTotal returns the amount of total disk in bytes.

func DiskUsed Uses

func DiskUsed() (uint64, error)

DiskUsed returns the amount of use disk in bytes.

func GetVersion Uses

func GetVersion() string

GetVersion get the riot version

func KernelVer Uses

func KernelVer() (string, error)

KernelVer returns the kernel version as a string.

func MemFree Uses

func MemFree() (uint64, error)

MemFree returns the amount of free memory in bytes.

func MemPercent Uses

func MemPercent() (string, error)

MemPercent returns the amount of use memory in percent.

func MemTotal Uses

func MemTotal() (uint64, error)

MemTotal returns the amount of total memory in bytes.

func MemUsed Uses

func MemUsed() (uint64, error)

MemUsed returns the amount of used memory in bytes.

func OrderlessOpts Uses

func OrderlessOpts(idOnly bool) types.EngineOpts

func Platform Uses

func Platform() (string, error)

Platform returns the platform name and OS Version.

func PlatformInfo Uses

func PlatformInfo() (platform, family, osVersion string, err error)

PlatformInfo fetches system platform information.

func ToGB Uses

func ToGB(data uint64) uint64

ToGB bytes to gb

func ToKB Uses

func ToKB(data uint64) uint64

ToKB bytes to kb

func ToMB Uses

func ToMB(data uint64) uint64

ToMB bytes to mb

func Try Uses

func Try(fun func(), handler func(interface{}))

Try handler(err)

func Uptime Uses

func Uptime() (uptime uint64, err error)

Uptime returns the system uptime in seconds.

type Engine Uses

type Engine struct {
    // contains filtered or unexported fields
}

Engine initialize the engine

func New Uses

func New(conf ...interface{}) *Engine

New create a new engine with mode

func NewEngine Uses

func NewEngine(conf ...interface{}) *Engine

NewEngine create a new engine

func (*Engine) CheckMem Uses

func (engine *Engine) CheckMem()

CheckMem check the memory when the memory is larger than 99.99% using the store

func (*Engine) Close Uses

func (engine *Engine) Close()

Close close the engine 关闭引擎

func (*Engine) Flush Uses

func (engine *Engine) Flush()

Flush block wait until all indexes are added 阻塞等待直到所有索引添加完毕

func (*Engine) FlushIndex Uses

func (engine *Engine) FlushIndex()

FlushIndex block wait until all indexes are added 阻塞等待直到所有索引添加完毕

func (*Engine) ForSplitData Uses

func (engine *Engine) ForSplitData(strData []string, num int) (TMap, int)

ForSplitData for split segment's data, segspl

func (*Engine) GetAllDocIds Uses

func (engine *Engine) GetAllDocIds() []string

GetAllDocIds get all the DocId from the storage database and return 从数据库遍历所有的 DocId, 并返回

func (*Engine) GetDBAllDocs Uses

func (engine *Engine) GetDBAllDocs() (docsId []string, docsData []types.DocData)

GetDBAllDocs get the db all docs

func (*Engine) GetDBAllIds Uses

func (engine *Engine) GetDBAllIds() []string

GetDBAllIds get all the DocId from the storage database and return 从数据库遍历所有的 DocId, 并返回

func (*Engine) HasDoc Uses

func (engine *Engine) HasDoc(docId string) bool

HasDoc if the document is exist return true

func (*Engine) HasDocDB Uses

func (engine *Engine) HasDocDB(docId string) bool

HasDocDB if the document is exist in the database return true

func (*Engine) Index Uses

func (engine *Engine) Index(docId string, data types.DocData,
    forceUpdate ...bool)

Index add the document to the index

func (*Engine) IndexDoc Uses

func (engine *Engine) IndexDoc(docId string, data types.DocData,
    forceUpdate ...bool)

IndexDoc add the document to the index 将文档加入索引

输入参数:

docId	      标识文档编号,必须唯一,docId == 0 表示非法文档(用于强制刷新索引),[1, +oo) 表示合法文档
data	      见 DocIndexData 注释
forceUpdate 是否强制刷新 cache,如果设为 true,则尽快添加到索引,否则等待 cache 满之后一次全量添加

注意:

1. 这个函数是线程安全的,请尽可能并发调用以提高索引速度
2. 这个函数调用是非同步的,也就是说在函数返回时有可能文档还没有加入索引中,因此
   如果立刻调用Search可能无法查询到这个文档。强制刷新索引请调用FlushIndex函数。

func (*Engine) Indexer Uses

func (engine *Engine) Indexer(options types.EngineOpts)

Indexer initialize the indexer channel

func (*Engine) Init Uses

func (engine *Engine) Init(options types.EngineOpts)

Init initialize the engine

func (*Engine) InitStore Uses

func (engine *Engine) InitStore()

InitStore initialize the persistent store channel

func (*Engine) NotTimeOut Uses

func (engine *Engine) NotTimeOut(request types.SearchReq,
    rankerReturnChan chan rankerReturnReq) (
    rankOutArr interface{}, numDocs int)

NotTimeOut not set engine timeout

func (*Engine) NumDocsIndexed Uses

func (engine *Engine) NumDocsIndexed() uint64

NumDocsIndexed documents indexed number, deprecated

func (*Engine) NumDocsRemoved Uses

func (engine *Engine) NumDocsRemoved() uint64

NumDocsRemoved documents removed number, deprecated

func (*Engine) NumIndexed Uses

func (engine *Engine) NumIndexed() uint64

NumIndexed documents indexed number

func (*Engine) NumRemoved Uses

func (engine *Engine) NumRemoved() uint64

NumRemoved documents removed number

func (*Engine) NumTokenAdded Uses

func (engine *Engine) NumTokenAdded() uint64

NumTokenAdded added token index number

func (*Engine) NumTokenIndexAdded Uses

func (engine *Engine) NumTokenIndexAdded() uint64

NumTokenIndexAdded added token index number, deprecated

func (*Engine) PinYin Uses

func (engine *Engine) PinYin(hans string) []string

PinYin get the Chinese alphabet and abbreviation

func (*Engine) RankID Uses

func (engine *Engine) RankID(request types.SearchReq, rankOpts types.RankOpts,
    tokens []string, rankerReturnChan chan rankerReturnReq) (output types.SearchResp)

RankID rank docs by types.ScoredIDs

func (*Engine) Ranker Uses

func (engine *Engine) Ranker(options types.EngineOpts)

Ranker initialize the ranker channel

func (*Engine) Ranks Uses

func (engine *Engine) Ranks(request types.SearchReq, rankOpts types.RankOpts,
    tokens []string, rankerReturnChan chan rankerReturnReq) (output types.SearchResp)

Ranks rank docs by types.ScoredDocs

func (*Engine) RemoveDoc Uses

func (engine *Engine) RemoveDoc(docId string, forceUpdate ...bool)

RemoveDoc remove the document from the index 将文档从索引中删除

输入参数:

docId	      标识文档编号,必须唯一,docId == 0 表示非法文档(用于强制刷新索引),[1, +oo) 表示合法文档
forceUpdate 是否强制刷新 cache,如果设为 true,则尽快删除索引,否则等待 cache 满之后一次全量删除

注意:

1. 这个函数是线程安全的,请尽可能并发调用以提高索引速度
2. 这个函数调用是非同步的,也就是说在函数返回时有可能文档还没有加入索引中,因此
   如果立刻调用 Search 可能无法查询到这个文档。强制刷新索引请调用 FlushIndex 函数。

func (*Engine) Search Uses

func (engine *Engine) Search(request types.SearchReq) (output types.SearchResp)

Search find the document that satisfies the search criteria. This function is thread safe 查找满足搜索条件的文档,此函数线程安全

func (*Engine) SearchDoc Uses

func (engine *Engine) SearchDoc(request types.SearchReq) (output types.SearchDoc)

SearchDoc find the document that satisfies the search criteria. This function is thread safe, return not IDonly

func (*Engine) SearchID Uses

func (engine *Engine) SearchID(request types.SearchReq) (output types.SearchID)

SearchID find the document that satisfies the search criteria. This function is thread safe, return IDonly

func (*Engine) Segment Uses

func (engine *Engine) Segment(content string) (keywords []string)

Segment get the word segmentation result of the text 获取文本的分词结果, 只分词与过滤弃用词

func (*Engine) Store Uses

func (engine *Engine) Store()

Store start the persistent store work connection

func (*Engine) TimeOut Uses

func (engine *Engine) TimeOut(request types.SearchReq,
    rankerReturnChan chan rankerReturnReq) (
    rankOutArr interface{}, numDocs int, isTimeout bool)

TimeOut set engine timeout

func (*Engine) Tokens Uses

func (engine *Engine) Tokens(request types.SearchReq) (tokens []string)

Tokens get the engine tokens

func (*Engine) UsedDisk Uses

func (engine *Engine) UsedDisk() (uint64, error)

UsedDisk returns the amount of use disk in bytes after init() func.

func (*Engine) UsedMem Uses

func (engine *Engine) UsedMem() (uint64, error)

UsedMem returns the amount of riot used memory in bytes after init() func.

func (*Engine) WithGse Uses

func (engine *Engine) WithGse(segmenter gse.Segmenter) *Engine

WithGse Using user defined segmenter If using a not nil segmenter and the dictionary is loaded, the `opt.GseDict` will be ignore.

type RankByTokenProximity Uses

type RankByTokenProximity struct {
}

func (RankByTokenProximity) Score Uses

func (rule RankByTokenProximity) Score(
    doc types.IndexedDoc, fields interface{}) []float32

type ScoringFields Uses

type ScoringFields struct {
    A, B, C float32
}

type StopTokens Uses

type StopTokens struct {
    // contains filtered or unexported fields
}

StopTokens stop tokens map

func (*StopTokens) Init Uses

func (st *StopTokens) Init(stopTokenFile string)

Init 从 stopTokenFile 中读入停用词,一个词一行 文档索引建立时会跳过这些停用词

func (*StopTokens) IsStopToken Uses

func (st *StopTokens) IsStopToken(token string) bool

IsStopToken to determine whether to stop token

type TMap Uses

type TMap map[string][]int

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

Directories

PathSynopsis
corePackage core is riot core
data
data/client
data/riot
data/riot1
data/riot1/heartb
data/riot/heartb
enginePackage engine is riot engine
examples/benchmarkriot 性能测试
examples/codelab一个微博搜索的例子。
examples/dict
examples/dict2
examples/info
examples/logic
examples/new
examples/pinyin
examples/pinyin/old
examples/pinyin_weibo一个微博 pinyin 搜索的例子。
examples/simple
examples/simple/zh
examples/store
examples/weibo
geo
netPackage net is riot net
net/com
net/grpc
net/grpc/riot-pb
net/heartb
net/http
net/rpcx
store
store/batch
typesPackage types is riot types
utils

Package riot imports 26 packages (graph) and is imported by 22 packages. Updated 2019-03-08. Refresh now. Tools for package owners.