写点什么

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:196994
用户头像

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

关注

评论

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

测试编排技术:实战前置接口响应数据引用

Apifox

测试 自动化测试 接口测试 测试工具 测试自动化

OmniReader Pro for Mac(图书阅读软件) 2.6.4永久激活版

mac

苹果mac Windows软件 OmniReader Pro 阅读软件

云图说丨初识华为云DDoS防护AAD——DDoS攻击防护平台

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 华为云云图说

读《重构-改善既有代码的设计》的一些思考

air

读书 软件开发 重构

Lazada商品详情API在电商中的价值及实时数据获取实践

Noah

万字长文,我对FinOps落地的思考

Geek_cd6rkj

云原生 后端 降本增效 成本治理 kubernetes 运维

快应用与小程序的“轻应用”市场

Geek_2305a8

NFTScan 与蚂蚁数科旗下 ZAN 达成战略合作

NFT Research

节点 NFT\ NFTScan #Web3

小红书、抖音社交媒体如何实现电商流程管理自动化

RestCloud

零代码 社交媒体 APPlink

系统内存测试工具 Micromat Lifespan激活最新版

胖墩儿不胖y

Mac软件 系统检测工具

网络安全事件频发现状

尚思卓越

网络安全

【B/S架构】医院不良事件报告系统源码

源码星辰

玩转Sermant开发,开发者能力机制解析

华为云开发者联盟

开发 开发工具 华为云 华为云开发者联盟

如何基于jmx exporter监控java应用

蝉翼2u

Prometheus CloudNative 现代监控系统 jmx exporter

Lightroom Classic 2022 中文最新版:mac图像编辑必备

mac大玩家j

Mac软件 图像编辑器 Mac图像处理工具

打卡智能中国(七):AI的小城故事

脑极体

AI

GitHub 如何修改 Fork from

HoneyMoose

光纤怎么接入网呢?

小齐写代码

直播预约丨《实时湖仓实践五讲》第五讲:实时湖仓领域的最佳实践解析

袋鼠云数栈

大数据 数据湖 直播 湖仓一体 实时湖仓

分布式基础概念-消息中间件[RocketMQ]

派大星

RocketMQ 消息中间件 Java 面试题

十问ByteHouse:如何基于ClickHouse玩转向量检索?

字节跳动数据平台

数据库 大数据 云原生

2023年“中国高校计算机大赛-人工智能创意赛”总决赛获奖名单公示

飞桨PaddlePaddle

人工智能 深度学习 开发者 高校 计算机大赛

开发一个免费App,都可以用哪些工具?

FinFish

APP开发 小程序容器 小程序转app 小程序技术

IPQ4019 IPQ4029 IPQ5018 IPQ8072 IPQ6010 Wallys OpenWRT Compatible Routerboard Wallys|Industrial/Commercial use

wallyslilly

文本信息大纲编写工具 OmniOutliner 5 Essentials 激活中文版

mac大玩家j

Mac软件推荐 文本大纲编辑工具

积极办理等保测评,保证企业网络安全!

行云管家

网络安全 等保 等级保护 等保测评

2024年完整湖北等保测评机构名单看这里!

行云管家

湖北 等级保护 等保测评

DAPP算力云矿机系统开发丨源码技术搭建

l8l259l3365

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