AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

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

关注

评论

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

一键部署Palworld幻兽帕鲁服务器最佳实践

天翼云开发者社区

云计算 云服务器

本地缓存Ehcache的应用实践 | 京东云技术团队

京东科技开发者

面试官:Sentinel是如何实现限流的?

王磊

Java 面试

探索大模型的端应用与形态

百度开发者中心

人工智能 深度学习 大模型

预训练对话大模型深度解读

百度开发者中心

自然语言处理 深度学习 大模型训练 大模型

预训练对话大模型深度解读

百度开发者中心

自然语言处理 深度学习 大模型

服装品牌如何利用数字化工具提升商品管理效率

第七在线

LigaAI 的 8 个年度关键词 | 2023 年度盘点

LigaAI

研发管理 研发效能度量 2023年终总结

【节选】Go语言的100个错误使用场景|数据类型

不在线第一只蜗牛

Go 算法 前端 开发语言

AI大模型:基础模型的新时代

百度开发者中心

人工智能 大模型

数字化商品计划管理:提升运营效率和竞争力的关键

第七在线

私有化部署的局域网即时通讯工具

BeeWorks

萨曼莎AI结合MoE技术创新应用: 引领AI Agents落地新格局

极客天地

使用草料的状态面板功能,扫码即可查看设备状态

草料二维码

二维码 草料二维码

WorkPlus构建安全高效的内网通讯平台,助力企业内部协作

BeeWorks

WorkPlus助力企业构建高效沟通与协作的即时通讯平台

BeeWorks

年度大模型榜单揭晓,智谱AI GLM-4在上海人工智能实验室司南榜单中位居国内榜首

极客天地

flinkcdc 3.0 尝鲜

Antgeek

flink 数据同步 flinkcdc

Secureworks 威胁评分迎来网络安全 AI 新时代

财见

远程桌面时连接不上远程计算机是什么问题

德迅云安全杨德俊

开发技巧:Flask 项目如何自动生成 API 文档

Liam

Python flask 程序员 后端 API 文档

DevOps是什么?只看这篇文章就够了!

DevOps 华为云

实用技巧:Mock.js 模拟数据生成教程

Apifox

前端 前端开发 Mock Mock 服务 Mock.js

平台工程: 用Backstage构建开发者门户 - 2

俞凡

平台工程

flinkcdc 3.0 架构设计学习

Antgeek

flink 数据同步 flinkcdc

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