写点什么

Bleve: 来自 Couchbase、基于 Go 语言的全文索引与检索库

  • 2015-03-26
  • 本文字数:1000 字

    阅读完需:约 3 分钟

Bleve 是一个由 Couchbase 团队基于 Go 语言开发的索引 / 检索库,它支持常用的检索和索引功能,如索引、检索、过滤、排序、聚合、高亮等。Bleve 包括常见的文本分析组件,且能够使用现有的 K/V 存储系统进行存储。Bleve 具有以下主要特性:

  • 支持所有 Go 数据结构的索引,如 JSON 、结构体、Slices、字符串等
  • 具有强大、智能的配置功能
  • 具有丰富的 Field 类型,如文本、数字、日期等
  • 具有丰富查询类型,如 Term、短语、模糊 / 精确匹配、前缀、逻辑与(Conjunction)、逻辑或(Disjunction)、布尔(Boolean)、数字范围、日期范围等查询
  • 具有简单的查询语法,且能够实现复杂的查询
  • 具有丰富的接口,且能够实现功能扩展
  • 具有易用且高级 API 能够索引数据模型中的任何对象
  • 基于标准的 TF-IDF 加权评分算法
  • 支持查询匹配结果的高亮显示
  • 支持多种聚合功能 (Facet),如能够根据 Term、数字范围、日期范围聚合等
  • 文本解析组件现已支持众多分析组件,支持将近二十种语言,如丹麦语、荷兰语、英国、法语、德语、泰语、土耳其语等

索引和检索示例如下:

索引示例

复制代码
message := struct{
Id string
From string
Body string
}{
Id: "example",
From: "marty.schoch@gmail.com",
Body: "bleve indexing is easy",
}
mapping := bleve.NewIndexMapping()
index, err := bleve.New("example.bleve", mapping)
if err != nil {
panic(err)
}
index.Index(message.Id, message)

检索示例

复制代码
> index, _ := bleve.Open("example.bleve")
> query := bleve.NewQueryStringQuery("bleve")
> searchRequest := bleve.NewSearchRequest(query)
> searchResult, _ := index.Search(searchRequest)

Bleve 基于 Apache License Version 2.0 协议开源,其代码托管在 GitHub 。为了减少项目依赖、简化编译与部署,于是,Couchbase 团队抛弃了 Java 环境下的 Lucene 方案(如 Lucene、Elasticsearch、Solr 等),并构建了 Bleve。它为开发者提供了一个 Go 语言环境下的全文检索新方案。读者可以通过官方提供的 Bleve Wiki 内容在线检索实例以体验Bleve 的检索功能效果。更多关于Bleve 的内容,请读者查看GitHub 提供的 Wiki 页面或其官网。


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

2015-03-26 00:197040
用户头像

发布了 46 篇内容, 共 52.8 次阅读, 收获喜欢 15 次。

关注

评论

发布
暂无评论
发现更多内容

文心一言 VS 讯飞星火 VS chatgpt (131)-- 算法导论11.2 3题

福大大架构师每日一题

福大大架构师每日一题

如何寻找优质的谷歌seo优化公司来提升你的外贸网站排名

九凌网络

极狐GitLab CI 助力 .Net 项目研发效率和质量双提升

极狐GitLab

.net ci 持续集成 代码规范 gitlab ci

低代码平台,业务开发的“银弹”

树上有只程序猿

软件开发 低代码平台 JNPF

langchain中的chat models介绍和使用

程序那些事

程序那些事 大模型 GPT

网站引流绝技:如何通过外链持续给网站带来高质量流量

九凌网络

九凌网络分享外贸快车实现迅速出口的目标

九凌网络

恭喜我同事的论文被IEEE HPCC收录!

天翼云开发者社区

数据库 云计算 高性能计算

量子计算和量子通信技术:引领潜力无限的未来

EquatorCoco

量子通信 量子计算 量子模拟

2023年的低代码:数字化、人工智能、趋势及未来展望

快乐非自愿限量之名

软件开发 低代码 低代码开发

软件测试/测试开发丨明确的编码规范,避免冗余和混乱

测试人

软件测试

Magnet for mac(macOS窗口管理软件)v2.13.0激活直装版

mac

窗口管理软件 苹果mac Windows软件 Magnet

强化您的应用安全,从app加固开始

雪奈椰子

阿里面试:看过框架源码吗?举例说明一下

王磊

Java

快手SL200芯片获选2023世界互联网大会“创新发展典型案例”

Geek_2d6073

十大项目管理主流方法论介绍

爱吃小舅的鱼

项目管理 项目管理方法

智驾未来:自主创新才是真正握住了命脉

不在线第一只蜗牛

华为 智能驾驶 小鹏汽车 问界

前三!前三!!前三!!!

天翼云开发者社区

云计算 公有云 云服务

云主机使用的硬盘类型及对应的存储类型详解

天翼云开发者社区

云计算 存储 硬盘

EMQX ECP 2.0 工业互联数据平台产品发布会

EMQ映云科技

数字化转型 工业4.0 智慧工厂

定制开发APP软件和网站的优势在哪里?

Geek_16d138

软件

情感语音识别技术在心理健康领域的应用与挑战

来自四九城儿

2023云栖大会的新鲜事

法医

8款好用的AI流程图软件推荐,高颜值流程图轻松绘制!

彭宏豪95

人工智能 流程图 在线白板 AIGC 流程图绘制

外贸企业新手指南:谷歌SEO多久能带来流量增长?

九凌网络

低代码平台的探究与分析

互联网工科生

软件开发 低代码 零代码 JNPF

2023 IoTDB Summit 正式“官宣”,邀您见证“从数据到洞察”的未来!

Apache IoTDB

Bleve:来自Couchbase、基于Go语言的全文索引与检索库_语言 & 开发_李小兵_InfoQ精选文章