wukongd is a search engine working as a standalone service, based on wukong

xinxin 3d75a88c8c change docId to string type hace 4 años
core 3d75a88c8c change docId to string type hace 4 años
data 77121830e9 第一发 hace 12 años
docs 7fd47ae1c3 修正示例文档语法错误 hace 9 años
engine 3d75a88c8c change docId to string type hace 4 años
examples 3d75a88c8c change docId to string type hace 4 años
storage 3d75a88c8c change docId to string type hace 4 años
testdata 06da509aa0 Delete weibo_data.txt hace 11 años
types 3d75a88c8c change docId to string type hace 4 años
utils 1325da904c refactor storage 代码 hace 10 años
.gitignore 6841ff5b85 实现了对索引的批量加入和删除操作,并添加单测 hace 10 años
README.md 3d75a88c8c change docId to string type hace 4 años
go.mod 3d75a88c8c change docId to string type hace 4 años
go.sum 3d75a88c8c change docId to string type hace 4 años
license.txt 77121830e9 第一发 hace 12 años
wukong.go 3d75a88c8c change docId to string type hace 4 años

README.md

wukongd

wukongd 是基于 wukong 的搜索引擎. wukong 是一个注重研究和部分实用性的项目, wukongd 在其基础上主要做了如下更新:

  • 文档 Id (docId) 不再是 uint64 类型, 而是 string 类型. 这样就简单地使 Id 有更强的表达能力, 轻易地支持多库多表多字段的索引. 只比 uint64 类型有轻微的性能损失
  • 增加 REST RPC 接口. 引擎部分不再作为一个库被使用, 只需要启动 wukongd 调用其接口即可
  • 增加 wukongd 配置文件.

  • 如果需要使用 wukong 的代码, 可以直接导航到其 github repo, 或 checkout orig 分支.

TODO

  • 定义配置文件内容
  • 定义 API 协议

悟空全文搜索引擎

微博搜索demo

安装/更新

go get -u -v github.com/huichen/wukong

需要Go版本至少1.1.1

使用

先看一个例子(来自examples/simplest_example.go

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:"百度中国"}))
}

是不是很简单!

然后看看一个入门教程,教你用不到200行Go代码实现一个微博搜索网站。

其它