微信号:infoqchina

介绍:有内容的技术社区媒体

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

2015-03-28 10:40 InfoQ



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

支持所有Go数据结构的索引,如JSON 、结构体、Slices、字符串等


具有强大、智能的配置功能


具有丰富的Field类型,如文本、数字、日期等


具有丰富查询类型,如Term、短语、模糊/精确匹配、前缀、逻辑与(Conjunction)、逻辑或(Disjunction)、布尔(Boolean)、数字范围、日期范围等查询


具有简单的查询语法且能够实现复杂的查询


具有丰富的接口,且能够实现功能扩展


具有易用且高级API能够索引数据模型中的任何对象


基于标准的TF-IDF加权评分算法


支持查询匹配结果的高亮显示


支持多种聚合功能(Facet),如能够根据Term、数字范围、日期范围聚合等


文本解析组件现已支持众多分析组件,支持将近二十种语言,如丹麦语、荷兰语、英国、法语、德语、泰语、土耳其语等


索引和检索示例如下:

索引示例


检索示例


Bleve基于Apache License Version 2.0协议开源,其代码托管在GitHub。为了减少项目依赖、简化编译与部署,于是,Couchbase团队抛弃了Java环境下的Lucene方案(如Lucene、Elasticsearch、Solr等),并构建了Bleve。它为开发者提供了一个Go语言环境下的全文检索新方案。


更多关于Bleve的内容,请长按扫描二维码,查看GitHub提供的Wiki页面或其官网。






如果想要评论本篇文章,想看下其他读者都有什么话想说,欢迎点击“阅读原文”参与讨论。

 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 【千言万语】Android培训学员写给千锋老师的一封信 阿里技术人|“只有平静地去剖析自我,才能够快速地成长” 阿里巴巴技术论坛邀你共享技术盛宴 毕业后想在北上广深生存下来么? 奥运来了,抢书啦,先到先得