- 授权协议: Apache
- 开发语言: Google Go
- 操作系统: 跨平台
- 软件首页: https://gitee.com/veni0/riot
- 软件文档: https://gitee.com/veni0/riot
软件介绍
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/riot
OSC@GIT:https://gitee.com/veni0/riot
C++沉思录
Andrew Koenig、Barbara Moo / 黄晓春、孟岩(审校) / 人民邮电出版社 / 2002-11-01 / 50.00元
《C++ 沉思录》集中反映了C++的关键思想和编程技术,不仅告诉你如何编程,还告诉你为什么要这样编程。本书曾出现在众多的C++专家推荐书目中。 这将是C++程序员的必读之作。因为: 它包含了丰富的C++思想和技术,从详细的代码实例总结出程序设计的原则和方法。 不仅教你如何遵循规则,还教你如何思考C++编程。 既包括面向对象编程也包括泛型编程。 探究STL这一近年来C++最重要的新成果的内在思想。一起来看看 《C++沉思录》 这本书的介绍吧!
HTML 压缩/解压工具
在线压缩/解压 HTML 代码
RGB转16进制工具
RGB HEX 互转工具
