写点什么

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

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

关注

评论

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

低多边形建筑3D模型纹理贴图

3D建模设计

3D渲染 材质贴图 纹理贴图 材质纹理 多边形建模

大模型训练中batch的作用

百度开发者中心

人工智能 大模型 深度学历

利用Prompt提升大模型微调性能

百度开发者中心

深度学习 大模型

使用函数计算,数禾如何实现高效的数据处理?

Serverless Devs

云计算 Serverless AIGC

华为云开源 | 线下meetup · 中国人民大学站顺利收官

华为云开源

区块链 微服务 时序数据库 AI大模型 前端组件库

音视频FAQ(三):音画不同步

ZEGO即构

CDN 直播 实时音视频 视频编解码 实时互动

低多边形3D建模动画风格纹理贴图

3D建模设计

3D渲染 材质贴图 纹理贴图 材质纹理

音视频开发常见问题(四):视频花屏和绿屏

ZEGO即构

实时音视频 直播技术 视频编解码 音视频开发 直播推流

Istio与Kubernetes:资源管理与协同解析

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟

5秒成为AI产业顾问、营销BI轻松搭建......一封来自星河社区5周年产业特辑的信

飞桨PaddlePaddle

人工智能 产业生态 星河社区

利用Prompt,高效调教大模型

百度开发者中心

人工智能 大模型 Prompt

深入解析LLaMA如何改进Transformer的底层结构

华为云开发者联盟

人工智能 华为云 大模型 华为云开发者联盟 LLM

低多边形游戏风格3D模型纹理贴图

3D建模设计

3D渲染 材质贴图 纹理贴图 材质纹理

政采云基于 Dubbo 的混合云数据跨网实践

阿里巴巴云原生

阿里云 云原生 dubbo

低多边形3D建模石头材质纹理贴图

3D建模设计

3D渲染 材质贴图 纹理贴图 材质纹理

盛大发布!用友携手35家数智化领先企业推出《用户之友》专著

用友BIP

企业数智化

阿里云 ACR 制品中心 AI/大数据镜像专场上新推荐榜

阿里巴巴云原生

阿里云 容器 云原生

利用大模型训练提升AI性能

百度开发者中心

人工智能 大模型 深度学习、

基于Unity3D 低多边形地形模型纹理贴图

3D建模设计

3D渲染 材质贴图 纹理贴图 材质纹理

mac上好用的软件提取工具:Pacifist中文激活版

胖墩儿不胖y

Mac软件 软件提取工具 软件提前

如何使用区块链数据构建安全工具

Footprint Analytics

区块链 区块链技术 数据安全

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