`
wangzjie
  • 浏览: 74576 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

solrj数据请求流程

    博客分类:
  • solr
阅读更多

一、写流程add

1、SolrServer的add方法:创建UpdateRequest对象,UpdateRequest.add(docList)。然后调用UpdateRequest.process(SolrServer)方法。

2、UpdateRequest.process():调用SolrServer(一般是HttpSolrServer)的request方法 (这里设置了ElaspedTime的开始时间)。

3、HttpSolrServer.request(SolrRequest request): 创建HttpPost,并获得request中的ContentStream(即把request中的documents变成<add><doc><field boost="1.0">XXX</field></doc>....</add>的形式) 。然后把ContentStream.getStream()将字符串变成字节流(new ByteArrayInputStream( str.getBytes(DEFAULT_CHARSET) ))放到post请求中,通过httpClient发送给solr服务器。

4、获得solr服务器的响应后的结果是字节流,需要使用ResponseParser(默认是BinaryResponseParser)对结果的字节流进行解析成相应的字符串,并放到UpdateResponse中,并设置response的ElaspedTime

 

二、query流程

1、SolrServer的query方法:创建QueryRequest对象, QueryRequest(QueryParam)。然后调用QueryRequest.process(SolrServer)方法。

2、QueryRequest.process(SolrServer):调用SolrServer(一般是HttpSolrServer)的request方法

3、HttpSolrServer.request(SolrRequest request): 创建HttpGet。

4、获得solr服务器的响应后的结果是字节流,需要使用ResponseParser(默认是BinaryResponseParser)对结果的字节流进行解析成相应的字符串,并放到QueryResponse中。

 

//QueryResponse构造:
  public QueryResponse( NamedList<Object> res , SolrServer solrServer){
    this.setResponse( res );
    this.solrServer = solrServer;
  }



 

分享到:
评论

相关推荐

    Solrj 中文教程

    - **4.2.1 AddingData to Solr**:如何使用Solrj添加数据到索引。 - **4.2.2 Directly adding POJOs to Solr**:如何直接将Java对象转换为Solr文档。 - **4.2.3 Reading Data from Solr**:如何从Solr检索数据。 ##...

    Sample-SolrJ-Client:示例 SolrJ 客户端

    我们需要提供 Solr 服务器的 URL,以便 SolrJ 可以发起请求。 4. **索引操作** - **创建索引**:使用 `SolrInputDocument` 对象表示要索引的文档,然后调用 `SolrServer` 的 `add` 方法将文档添加到索引。 - **...

    solr-7.0.0

    在Solr中,可以通过配置连接Redis,将部分搜索结果或热数据存储在Redis中,当用户发起请求时,先从Redis缓存中查找,提高响应速度。 Solr-7.0.0可能包含以下组件和文件: 1. `bin`目录:包含了启动、停止Solr的脚本...

    solr ssm java

    整个流程是:用户请求-&gt;SpringMVC接收-&gt;调用Service层-&gt;Service层通过MyBatis操作数据库-&gt;返回结果到Controller-&gt;SpringMVC将结果传回视图展示。 在描述中提到,这是一个已经配置好的Maven项目,这意味着该项目使用...

    搭建Solr集群

    - **定义**:SolrCloud 是 Solr 提供的一种分布式搜索解决方案,适用于需要处理大规模数据集、支持高并发搜索请求以及实现容错机制的应用场景。 - **适用场景**:当单个索引的数据量较小且搜索请求频率不高时,无需...

    工作日志_李响115_202109021

    总结来说,这份工作日志反映了基于Java的Web应用开发流程,包括服务的创建、搜索引擎的集成、数据的处理和传输,以及服务间通信的问题解决。这些技术涵盖了Web开发的多个方面,包括Maven构建系统、搜索引擎服务Solr...

    WebSolrDemo 全文检索,全文索引

    - **Java客户端API**:WebSolrDemo可能使用SolrJ库来与Solr服务器交互,包括添加、更新和查询索引。 - **数据导入工具**:可能是自定义的Java类,用于将应用数据导入Solr。 - **查询接口**:在Web应用程序中,用户...

    solr-所需要ajr包.zip

    Solr除了核心功能外,还有许多可选模块,如数据导入处理器(DIH)、SolrCloud(分布式搜索)、SolrJ(Java客户端API)等。对应的JAR文件如dataimporthandler.jar、solr-dataimporthandler-extras.jar、solr-solrj....

    solr入门指南

    - 可以使用多种方式来索引数据,包括 HTTP POST 请求、Solrj API、XML 文件上传等。 #### 五、更新数据(Updating Data) 1. **更新现有文档**: - Solr 支持通过发送更新请求来修改已存在的文档。 - 更新操作...

    solr开发详解

    - Solr 客户端通过 GET 请求向 Solr 服务端发送搜索请求,Solr 服务器则返回包含搜索结果的 XML 文档。 - **Solrj 使用**: - **Solrj** 是一个 Java 接口库,使得 Java 应用程序能够轻松地与 Solr 服务器交互。 ...

    SOLR的应用教程

    索引是Solr的核心功能,它将数据转化为倒排索引,以快速响应查询请求。索引过程包括分析、存储和建立倒排索引。 1.3.2 搜索 搜索是通过查询解析器和评分函数实现的,查询结果按相关性排序返回。 **二、Solr的安装...

    配置了solr服务的tomcat

    - 查询数据:使用 `query()` 方法构造查询请求,并获取结果集。 - 关闭客户端:记得在完成操作后关闭 Solr 客户端以释放资源。 6. **SolrJ 使用示例** - 添加文档: ```java SolrInputDocument doc = new ...

    solr搜索插件

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

    solr教材-PDF版

    - **4.2.1 AddingData to Solr**:通过SolrJ向Solr添加数据的方法。 - **4.2.2 Directly adding POJOsto Solr**:直接将Java对象转换为Solr文档并存储。 - **4.2.3 ReadingData from Solr**:从Solr读取数据的方法。...

    Apache_Solr_初级教程

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

    搜索引擎-java

    其工作流程通常包括爬虫(Crawler)、索引(Indexing)、查询处理(Query Processing)和结果返回(Result Ranking)四个步骤。Java可以用来实现这些功能,例如使用Jsoup库进行网页抓取,Apache Lucene进行索引和...

    solr创建索引并查询

    #### 三、Solr创建索引流程 1. **建立SolrServer连接** - 使用`CommonsHttpSolrServer`类创建Solr服务器连接。 - 设置必要的参数,如URL、超时时间、最大连接数等。 2. **添加文档** - 创建一个...

    开源企业搜索引擎SOLR的应用教程.pdf

    SolrJ作为Solr的Java客户端,也在这部分被详细介绍,包括如何通过SolrJ添加数据、创建查询以及索引的创建。 性能调优是任何搜索引擎应用中的重要环节,文档的第六部分对性能调优提供了深入指导。涵盖了Schema设计、...

    RabbitMQ学习-实战.docx

    Spring Web MVC负责处理HTTP请求,而Solrj则与Apache Solr交互,实现商品数据的检索和索引。 在web.xml中,我们配置了Servlet容器(如Tomcat),设置了监听端口和上下文路径。这允许我们的应用在指定的端口上运行,...

Global site tag (gtag.js) - Google Analytics