当前位置: 首页 > 软件库 > 程序开发 > 搜索引擎 >

Bleve

Go 文本索引库
授权协议 Apache
开发语言 Google Go
所属分类 程序开发、 搜索引擎
软件类型 开源软件
地区 不详
投 递 者 桂嘉年
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Bleve,发音为 BLEH-vee,是一个现代化的 Go 搜索索引库。Bleve 是使用 Go 编写的现代化文本索引库,支持各种常用的搜索索引,包括过滤,排序和分类。

当使用 Java 和 JVM 的时候使用比较多的是 Lucene,Elasticsearch 和 Solr。但是有时候不想要那么多依赖,想要避免外部服务,简单编译部署就可以运行。所以 Couchbase 团队就构建了一个 Go 库,支持大部分 Lucene 常规使用的文本分析组件,可以使用 off-the-shelf key-value (KV) 存储。

特性:

  • 支持任何 go 数据架构索引,包括 JSON

  • 通过强大的配置智能默认备份

  • 支持字段类型

    • Text, Numeric, Date

  • 支持查询类型

    • Term, Phrase, Match, Match Phrase, Prefix

    • Conjunction, Disjunction, Boolean

    • Numeric Range, Date Range

    • 人类条目的简单查询语法

  • tf-idf Scoring

  • 默认搜索匹配结果高亮

  • 支持聚合 Facets:

    • Terms Facet

    • Numeric Range Facet

    • Date Range Facet


  •   核心是Analyzer,一般翻译成分词器:   Analyzer  分词器(Analyzer)是将输入文本(Text)最终转换成一个标记段流(Token Stream)的类似管道的结构,或者说处理流程。 由0个或者多个字符过滤器(Character Filter),1个标记段生成器(Tokenizer),0个或者多个标记段过滤器(Token Filter)组成   流程很清晰,下面依次解释涉及

  • Term 词条查询是最简单的查询。它在所提供的术语的索引中执行完全匹配。   Match 匹配查询,就像一个词条查询,但首先分析输入文本。试图使用该字段被索引时使用的相同分析器。 匹配查询可以选择性地执行模糊匹配。如果模糊性参数设置为非零整数,则分析的文本将与指定的模糊水平相匹配。另外,可以使用prefix_length参数来要求该项也具有指定长度的相同前缀。   Phrase 短语查询搜索指定位

  • 引言 Bleve是Golang实现的一个全文检索库,类似Lucene之于Java。在这里通过阅读其代码,来学习如何使用及定制检索功能。也是为了通过阅读代码,学习在具体环境下Golang的一些使用方式。代码的路径在github上https://github.com/blevesearch/bleve。 1 新建索引 下面的代码摘自Bleve的"Hello World"示例。 // open a ne

 相关资料
  • 问题内容: 我想在Elasticsearch中导入一个文本文件。文本文件每行包含3个值。经过数小时的奋斗,我没有完成它。非常感谢您的帮助。 安装了Logstash的Elasticsearch 5.4.0。 样本数据: 还构建了一个python脚本,但是它太慢了: 编辑:感谢它的工作,但我想我的筛选器很烂,因为我希望它看起来像这样: 然后将数据如下所示: 问题答案: 只需将其放入一个名为: 然后使用

  • 问题内容: 我想为查询建立索引 如果我有一个像下面这样的表 我想创建一个索引,以便能够高效地执行以下操作: 还有这个: 我也希望该表能够实时更新。 如何创建这样的索引?(我有一种需要索引的感觉,但是我对需要给它提供什么选择感到困惑) 我正在使用Oracle 10g。 问题答案: 我会用这个(将您的最小和最大长度设置为适当值) 这些参数在此处解释《Oracle文本参考》

  • 当你要在 Elasticsearch 增加文档时,你就需要索引 JSON 文档。JSON 文档会映射 PHP 关联数组,因为 PHP 关联数组可以 encode 为 JSON 数据格式。 因此在 Elasticsearch-PHP 中你可以传递关联数组给客户端来索引文档。我们会概述几种方法来增加文档到 Elasticsearch。 单一文档索引 当索引一个文档时,你可以提供一个 ID 或者让 El

  • 问题内容: 我是Lucene的新手,在创建 用于查询文本文件集合的 简单代码时遇到一些问题。 我尝试了此示例,但与新版本的Lucene不兼容。 UDPATE: 这是我的新代码,但是仍然无法使用。 问题答案: Lucene是一个相当大的主题,涉及很多类和方法,通常您必须至少了解一些基本概念才能使用它。如果您需要快速可用的服务,请改用Solr。如果您需要对Lucene的完全控制,请继续阅读。我将介绍一

  • 我正在使用node.js连接到neo4j数据库。每当我必须为一个节点设置索引时,我都会通过转到neo4j浏览器(localhost:7474)来手动完成。 我构建了自己的nodejs适配器来连接到neo4j,因此目前我只能访问密码查询。要创建索引,我只能访问cypher或浏览器(7474)。那么创建自动全文索引的正确方法是什么,最好是从浏览器本身创建?我如何使用密码访问它(或者我必须访问它?neo

  • 以下列出了所有文件及其简要说明: daemon.h [code] fileconf.h [code] jitter.h [code] Packet.h [code] pcap-remote.h [code] incs/pcap.h [code] funcs/pcap.h [code] remote-ext.h [code] rpcapd.h [code] utils.h [code] Win32-

  • 我使用Java8来解析日期并找出两个日期之间的差异。 以下是我的片段: 当我运行时,我得到了错误: java.time.format.DateTimeParseException:无法在索引3解析文本

  • 我正在编写一种方法来搜索列表形式的文字文件,搜索用户输入的文字,但如果找到一个字母,程序将返回一个肯定的结果。例如,如果我搜索“f”,当没有单词时,它将返回字典中有一个单词“f”