`

SolrJ的javabin格式分析

阅读更多

Solr中对于返回数据格式有xml、json、javabin等等,其中当传入参数wt=javabin时可以直接返回solr自定义序列化的javabin二进制流。

Solr对对于对象的序列化基本采用以下格式(对于熟悉lucene的同学来说可能更容易理解):

version+[tag+value]

第一个byte表示Version,必须为“1”。下面就是对象的定义了。tag为一个字节,前三位表示tag的名称,后五位表示数据长度。Solr的tag定义如下:

NULL = 0,

BOOL_TRUE = 1,

BOOL_FALSE = 2,

BYTE = 3,

SHORT = 4,

DOUBLE = 5,

INT = 6,

LONG = 7,

FLOAT = 8,

DATE = 9,

MAP = 10,

SOLRDOC = 11,

SOLRDOCLST = 12,

BYTEARR = 13,

ITERATOR = 14,

END = 15,

TAG_AND_LEN = (byte)(1 << 5),

STR = (byte)(1 << 5),

SINT = (byte)(2 << 5),

SLONG = (byte)(3 << 5),

ARR = (byte)(4 << 5), //

ORDERED_MAP = (byte)(5 << 5),

NAMED_LST = (byte)(6 << 5),

EXTERN_STRING = (byte)(7 << 5);

对于Solr的序列化了解以后,我们就可以写代码,对Solr的javabin二进制格式数据进行解析了。

分享到:
评论

相关推荐

    solrj的使用

    同样,在不同主要版本之间使用Javabin通信时,也需要特别注意,因为某些版本间的Javabin格式可能不兼容。 对于依赖管理,如果你遇到`NoClassDefFoundError`异常,可能需要添加`slf4j-simple`库,以解决日志框架的...

    solr8使用solrJ查询数据使用记录

    1.下载solr ...windows下载zip,linux下载tgz 下载完解压 2.solr启动&停止 solr-8.0.0\bin目录下执行cmd solr start 启动 solr stop -all 3.创建solrcore \solr-8.0.0\server\...将数据库驱动(mysql-cnnector-java-5.1.

    solr简单应用操作的代码部分

    以Java为例,我们可以使用SolrJ库来发送请求和处理响应: ```java SolrClient client = new HttpSolrClient("http://localhost:8983/solr/simple"); SolrQuery query = new SolrQuery(); query.setQuery("example")...

    solr-7.4.0.zip

    要启动Solr 7.4.0,你需要先设置`JAVA_HOME`环境变量,然后进入解压后的目录,执行`bin/solr start`(在Windows上是`bin\solr.cmd start`)。这将启动一个单节点的Solr服务器。如果你想要配置多节点的SolrCloud模式...

    solr-7.0.0

    它基于Java,可以方便地与其他Java应用集成,同时提供RESTful API,使得非Java环境也能轻松与其交互。 在Solr-7.0.0中,用户可以通过配置不同的索引和查询策略,实现高效的文本检索。它支持多种数据类型,包括文本...

    Solr开发指南.pdf

    - SolrJ介绍:SolrJ是Solr的Java客户端,用于与Solr服务器通信,进行索引操作和查询。 - SolrJ索引维护:利用SolrJ进行数据的添加、删除和更新,确保索引的实时性。 - 数据导入处理器:使用DataImportHandler(DIH)...

    solr全文检索环境搭建

    这可以通过Solr的Data Import Handler (DIH) 或者使用SolrJ Java库来实现。DIH可以从数据库或其他源导入数据,而SolrJ则允许你在代码中直接操作Solr。 **9. 查询与优化** 一旦数据导入完成,你就可以通过Solr的API...

    Lucene学习程序

    **Lucene学习程序** ...通过以上内容,你可以掌握基于Lucene的全文检索程序开发,了解Solr的基本操作,并学会使用Solrj进行Java客户端编程。不断实践和探索,你将能够构建出高效、功能丰富的全文搜索引擎。

    solr笔记solr笔记

    1. SolrJ:SolrJ 是 Solr 的 Java 客户端,可以使用 SolrJ 来访问 Solr 服务器。 2. 高级搜索:Solr 提供了高级搜索功能,包括 faceting、filtering、sorting 等。 京东案例: 1. 京东搜索:京东使用 Solr 来实现...

    solr5.5.4项目示例

    8. **SolrJ客户端库**:为了简化与Solr服务器的交互,通常会使用SolrJ Java客户端库。这个库提供了一套API,使得与Solr的通信更加简便,可能在本示例中也有使用。 9. **分布式搜索**:Solr 5.5.4版本支持分布式部署...

    solr+tomcat完成搜索功能

    在项目的`pom.xml`文件中添加SolrJ的依赖,以便能够在Java程序中操作Solr索引。 **4.2 导入商品信息** 开发一个服务来读取MySQL数据库中的商品信息,并使用SolrJ将这些信息写入Solr索引库。这通常涉及到编写Java...

    solr环境搭建总结一

    Solr是Apache Lucene项目下的一个企业级搜索服务器,它提供了全文检索、高亮显示、 faceted search(分面搜索)以及实时分析等功能。本文将详细介绍如何搭建Solr环境,并解析其配置文件,同时也会涉及SolrJ客户端的...

    solr的使用入门以及相关配置文件的解释

    Solr是中国Apache软件基金会开发的一款高性能、基于Java的全文搜索引擎服务器。它允许用户通过HTTP请求对索引进行创建、更新和查询,同时提供了丰富的管理工具和API,方便开发者集成到各种应用系统中。Solr的核心...

    自己搭建的Solr环境

    Solr支持多种数据导入方式,如使用SolrJ Java库、命令行工具或直接通过HTTP POST请求。你需要根据你的数据源选择合适的方法。例如,如果你的数据在CSV文件中,可以使用`dataimport handler`进行批量导入。 查询是...

    配置了solr服务的tomcat

    Tomcat 是一个流行的开源 Java 应用服务器,常用于部署 Web 应用程序。下面我们将详细介绍如何配置已集成 Solr 的 Tomcat 服务器以及如何使用 SolrJ 进行交互。 1. **安装和配置 Tomcat** - 下载 Apache Tomcat:...

    solr开发技术总结

    SolrJ 是 Solr 的 Java 客户端库,它允许开发者通过 Java API 与 Solr 服务器进行交互,包括建立索引、查询、更新和删除数据。在 SolR 1.4.1 版本中,我们可以看到 SolrJ 的使用方式。例如,以下代码展示了如何创建...

    solr6.2.1项目包

    7. **插件和模块**: Solr 6.2.1可能还包括一些预装的插件,比如用于分析、处理和高亮显示搜索结果的插件,以及用于处理特定数据格式(如XML、CSV)的处理器。 通过这个项目包,你可以构建一个完整的Solr搜索服务,...

    solr搜索插件

    4. **索引数据**:使用Solr提供的API或者客户端工具,如SolrJ(Java库)或命令行工具,将需要搜索的数据导入到Solr中建立索引。索引过程可以是批量的,也可以是实时的,取决于你的数据更新频率。 5. **查询与优化**...

    Apache_Solr_初级教程

    - SolrJ 是 Solr 提供的一个 Java API 客户端,允许开发者直接从 Java 应用中发送请求到 Solr 服务器。 - 依赖的 Jar 包包括 solrj-core.jar、solrj-impl.jar 等。 2. **创建 SolrServer 实例**: - 使用 ...

    Apache Solr(solr-7.7.3.tgz)

    此外,Solr支持通过HTTP接口进行远程管理,这使得你可以通过Solr的RESTful API或者Solrj(Java客户端库)来创建、更新和查询索引。 Solr的Lucene集成使得其在全文搜索方面表现出色。Lucene是一个高性能的全文索引库...

Global site tag (gtag.js) - Google Analytics