- 授权协议: 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
Python编程初学者指南
[美]Michael Dawson / 王金兰 / 人民邮电出版社 / 2014-10-1
Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python可以用于很多的领域,从科学计算到游戏开发。 《Python编程初学者指南》尝试以轻松有趣的方式来帮助初学者掌握Python语言和编程技能。《Python编程初学者指南》共12章,每一章都会用一个完整的游戏来演示其中的关键知识点,并通过编写好玩的小软件这种方式来学习编程,引发读者的兴趣,降低学习的难度。每章最后都会......一起来看看 《Python编程初学者指南》 这本书的介绍吧!
