悟空全文搜索引擎使用教程
wukong 高度可定制的全文搜索引擎 项目地址: https://gitcode.com/gh_mirrors/wu/wukong
1. 项目的目录结构及介绍
悟空全文搜索引擎的目录结构如下:
.
├── core
├── data
│ └── dictionary.txt
├── docs
│ └── README.md
├── engine
├── examples
│ └── simplest_example.go
├── go.mod
├── go.sum
├── license.txt
├── storage
├── testdata
├── types
├── utils
├── vendor
└── wukong.go
core
: 核心代码目录,包含了搜索引擎的核心实现。data
: 数据目录,存放字典文件dictionary.txt
,用于中文分词。docs
: 文档目录,包含了项目的说明文档README.md
。engine
: 搜索引擎引擎相关代码。examples
: 示例代码目录,包含了最简单的使用示例simplest_example.go
。go.mod
: Go语言模块配置文件。go.sum
: Go语言模块依赖文件。license.txt
: 项目许可证文件,采用Apache License v2。storage
: 存储相关代码。testdata
: 测试数据目录。types
: 定义了项目所需的类型。utils
: 工具函数目录。vendor
: 依赖的第三方库。wukong.go
: 主程序文件。
2. 项目的启动文件介绍
项目的启动文件是examples/simplest_example.go
,该文件提供了一个最简单的示例,展示了如何初始化搜索引擎,添加文档到索引,进行搜索,以及关闭搜索引擎。
以下是simplest_example.go
的主要内容:
package main
import (
"github.com/huichen/wukong/engine"
"github.com/huichen/wukong/types"
"log"
)
var searcher = engine.Engine{}
func main() {
// 初始化搜索引擎
searcher.Init(types.EngineInitOptions{SegmenterDictionaries: "github.com/huichen/wukong/data/dictionary.txt"})
defer searcher.Close()
// 将文档加入索引
searcher.IndexDocument(1, types.DocumentIndexData{Content: "此次百度收购将成中国互联网最大并购"}, false)
searcher.IndexDocument(2, types.DocumentIndexData{Content: "百度宣布拟全资收购91无线业务"}, false)
searcher.IndexDocument(3, types.DocumentIndexData{Content: "百度是中国最大的搜索引擎"}, false)
// 等待索引刷新完毕
searcher.FlushIndex()
// 执行搜索并打印结果
log.Println(searcher.Search(types.SearchRequest{Text: "百度中国"}))
}
3. 项目的配置文件介绍
悟空全文搜索引擎的配置主要是通过在初始化时传入的EngineInitOptions
参数来实现的。目前,主要的配置项包括:
SegmenterDictionaries
: 分词器所使用的词典文件路径。
在simplest_example.go
中,配置文件的部分如下:
searcher.Init(types.EngineInitOptions{
SegmenterDictionaries: "github.com/huichen/wukong/data/dictionary.txt",
})
这里的SegmenterDictionaries
指定了分词器所使用的词典文件dictionary.txt
的路径。这个文件位于项目的data
目录下,是搜索引擎进行中文分词的重要依据。
wukong 高度可定制的全文搜索引擎 项目地址: https://gitcode.com/gh_mirrors/wu/wukong
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考