WuKong 全文搜索引擎。功能特性:
高效索引和搜索(1M条微博500M数据28秒索引完,1.65毫秒搜索响应时间,19K搜索QPS)
支持中文分词(使用sego分词包并发分词,速度27MB/秒)
支持计算关键词在文本中的紧邻距离(token proximity)
支持计算BM25相关度
支持自定义评分字段和评分规则
支持在线添加、删除索引
支持持久存储
可实现分布式索引和搜索
采用对商业应用友好的Apache License v2发布
示例代码:
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() // 将文档加入索引 searcher.IndexDocument(0, types.DocumentIndexData{Content: "此次百度收购将成中国互联网最大并购"}) searcher.IndexDocument(1, types.DocumentIndexData{Content: "百度宣布拟全资收购91无线业务"}) searcher.IndexDocument(2, types.DocumentIndexData{Content: "百度是中国最大的搜索引擎"}) // 等待索引刷新完毕 searcher.FlushIndex() // 搜索输出格式见types.SearchResponse结构体 log.Print(searcher.Search(types.SearchRequest{Text:"百度中国"})) }