2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

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

关注

评论

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

为什么那么多人喜欢用云桌面

青椒云云电脑

桌面云 云桌面

快手Java一面11问(附参考答案)

JavaGuide

Java spring 面试 springboot Java web

对线面试官 - MQ经典面试题之高可用性及幂等性

派大星

MQ Java 面试题

开箱即用!教你如何正确使用华为云CodeArts PerfTest!

华为云PaaS服务小智

云计算 软件开发 性能测试 华为云

超越界限:大模型应用领域扩展,探索文本分类、文本匹配、信息抽取和性格测试等多领域应用

汀丶人工智能

信息抽取 自然语言模型 大语言模型 ChatGLM-6B 文本匹配

如何优雅的给柯里化函数添加类型标注

汽车之家客户端前端团队

函数柯里化

SpringBoot中如何对数据访问层进行单元测试?

java易二三

Java 数据库 编程 程序员 计算机

苹果Mac版防火墙推荐Radio Silence 激活下载+安装教程

胖墩儿不胖y

Mac软件 防火墙工具

智慧仓储 | 你所忽略的系统安全性问题,可能很 “致命”……

网安云

系统安全 智慧仓储 中小企业

站在源码的角度看多人语音厅房间系统

山东布谷网络科技

直播源码

Excel变天!微软把Python「塞」进去了,直接可搞机器学习

Openlab_cosmoplat

人工智能

OpenHarmony 分布式硬件关键技术

OpenHarmony开发者

OpenHarmony

GPU荒漠,算力短缺背后的时间竞赛与解决方案|TE解读

TE智库

人工智能 AI gpu 算力

微短剧赛道风口下的一站式点播解决方案

阿里云CloudImagine

云计算 视频云 微短剧

开发一款同城线下陪玩约玩APP大家怎么看?线下陪玩APP的应用场景

山东布谷科技胡月

语音聊天源码 线下约玩APP开发 线下陪玩平台 社交约玩平台开发 约玩交友APP源码

Kurator,你的分布式云原生解决方案

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

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