• 授权协议:Apache
  • 开发厂商:-
  • 软件语言:Google Go
  • 更新日期:2017-10-07
riotsearch

riotsearch 分布式全文搜索引擎

riotsearch 分布式全文搜索引擎 项目简介

riot 分布式全文搜索引擎, 采用 Go 语言开发。功能特性:高效索引和搜索(1M条微博500M数据28秒索引完,1.65毫秒搜索响应时间,19K搜索QPS)支持中文分词(使用gse分词包并发分词,速度27MB/秒)支持逻辑搜索支持中文转拼音搜索支持计算关键词在文本中的紧邻距离(token proximity)支持计算BM25相关度支持自定义评分字段和评分规则支持在线添加、删除索引支持多种持久存储支持 heartbeat支持分布式索引和搜索可实现分布式索引和搜索采用对商业应用友好的Apache License v2发布示例代码: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
searcher.Init(types.EngineOpts{
             Using:             4,
             SegmenterDict: "./dict/dictionary.txt"})
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.IndexDoc(1, types.DocIndexData{Content: text}, false)
    searcher.IndexDoc(2, types.DocIndexData{Content: text1}, false)
    searcher.IndexDoc(3, types.DocIndexData{Content: text2}, false)

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

// The search output format is found in the types.SearchResp structure
log.Print(searcher.Search(types.SearchReq{Text: "google testing"}))
}主要改进:增加逻辑搜索 增加拼音搜索 增加分布式和 heartbeat分词等改进 增加更多api修复 bug删除依赖 cgo 的存储引擎, 增加 badger和 leveldb 持久化引擎项目详情:Github在线源码:https://github.com/go-ego/riotOSC@GIT:https://gitee.com/veni0/riot

riotsearch 分布式全文搜索引擎 评论内容