高 效 索引 和 搜索 (1M条 微 博 500M数 据 28秒 索引 完 ,1.65毫秒搜索 响应时间,19K搜索 QPS)支持 中 文 分 词(使用 sego分 词包并发分 词,速度 27MB/秒 )支持 计算关键词在文 本中 的 紧邻距离(token proximity)支持 计算BM25相 关度支持 自 定 义评分 字 段 和 评分规则支持 在 线添加 、删除索引 支持 持久 存 储可 实现分布 式 索引 和 搜索 采 用 对商业应用 友好 的 Apache License v2发布
go get -u -v github.com/huichen/wukong
package main
import (
"github.com/huichen/wukong/engine"
"github.com/huichen/wukong/types"
"log"
)
var (
// searcher是 协程安全 的
searcher = engine.Engine{}
)
func main() {
// 初 始 化
searcher.Init(types.EngineInitOptions{
SegmenterDictionaries: "github.com/huichen/wukong/data/dictionary.txt"})
defer searcher.Close()
// 将文 档加入 索引 ,docId 从1开始
searcher.IndexDocument(1, types.DocumentIndexData{Content: "此次百度收购将成中国互联网最大并购"}, false)
searcher.IndexDocument(2, types.DocumentIndexData{Content: "百度宣布拟全资收购91无线业务"}, false)
searcher.IndexDocument(3, types.DocumentIndexData{Content: "百度是中国最大的搜索引擎"}, false)
// 等 待 索引 刷新 完 毕
searcher.FlushIndex()
// 搜索 输出格式 见types.SearchResponse结构体
log.Print(searcher.Search(types.SearchRequest{Text:"百 度 中国 "}))
}