热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

solrjforsolr5.3.1(solrj最新版本API)

0.前言solrj是solr的客户端java版本,总所周知solr支持http的api接口方式来操作包括索引、搜索等功能;同样支持编码的方式来完成相关操作。--caicongyang1.添加相关ja
0.前言 solrj是solr的客户端java版本,总所周知solr支持http的api接口方式来操作包括索引、搜索等功能; 同样支持编码的方式来完成相关操作。 --caicongyang 1.添加相关jar包

可以添加solr下所有jar包

亦可以只添加以下:(差缺补漏)

solr-core-5.3.1.jar
solr-solrj-5.3.1.jar
httpclient-4.4.1.jar

httpcore-4.4.1.jar

httpmime-4.4.1.jar

slf4j-api-1.7.7.jar
slf4j-log4j12-1.7.7.jar

2.相关代码

package com.ccy.solr;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.SolrPingResponse;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.params.MapSolrParams;
import org.apache.solr.common.params.MultiMapSolrParams;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.servlet.SolrRequestParsers;
import org.junit.Test;

/**
*
*


* Title: SolrJTest.java
* Package com.ccy.solr
*


*


* Description: solr5.3.1中的solrj相关api demo测试类
*
*


* @author Tom.Cai
* @created 2015-11-30 下午10:29:46
* @version V1.0
*
*/
public class SolrJTest {

/**
* 创建solrClient (4.x的版本使用类是SolrServer,在新版本中已经被弃用了)
*/
@Test
public void createSolrClient(){
try {
SolrClient solr = new HttpSolrClient("http://localhost:8080/solr/db");
SolrPingResponse respOnse= solr.ping();
//打印执行时间
System.out.println(response.getElapsedTime());
solr.close();
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* 增加bean索引,该bean中的字段需要匹配schema中的fields,(可以用@Field注解来关联相关字段)
* 否者抛出org.apache.solr.client.solrj.beans.BindingException: class: class com.ccy.solr.Blog does not define any fields.
* @throws Exception
*/
@Test
public void addBeanIndex() throws Exception{
SolrClient solr = new HttpSolrClient("http://localhost:8080/solr/db");
Blog blog = new Blog();
blog.setId(123);
blog.setTitle("test");
blog.setContent("test...");
blog.setKeyWord("test");
UpdateResponse respOnse= solr.addBean(blog);
System.out.println(response.getElapsedTime());
solr.commit();
solr.close();
}


/**
* 增加索引
*
* @throws Exception
*/
@Test
public void addIndex() throws Exception{
SolrClient solr = new HttpSolrClient("http://localhost:8080/solr/solr");
SolrInputDocument document = new SolrInputDocument();
document.addField("id",123, new Float(1.0));
document.addField("content", "test");
UpdateResponse respOnse= solr.add(document);
System.out.println(response.getElapsedTime());
solr.commit();
solr.close();
}



/**
* 删除索引
*/
@Test
public void delIndex() throws Exception{
SolrClient solr = new HttpSolrClient("http://localhost:8080/solr/solr");
UpdateResponse respOnse= solr.deleteById("123");
System.out.println(response.getElapsedTime());
solr.commit();
solr.close();
}

/**
* 简单查询
* @throws IOException
* @throws SolrServerException
*/
@Test
public void query() throws Exception{
SolrClient solr = new HttpSolrClient("http://localhost:8080/solr/solr");
Map map = new HashMap();
map.put("q", "content:test");
SolrParams params = new MapSolrParams(map);
QueryResponse resp = solr.query(params);
//以下是第二种方法
//String queryString="content:test";
//MultiMapSolrParams mParams = SolrRequestParsers.parseQueryString("queryString");
//QueryResponse resp = solr.query(mParams);
SolrDocumentList docsList = resp.getResults();
System.out.println(docsList.size());
for (SolrDocument doc : docsList) {
System.out.println(doc.get("id"));
}
solr.close();
}

}


3.随记

Eclipse 自动生成还回值对象快捷键 :Alt+Shift+l

4.其他

记录与分享,你我共成长!关于solr的其他文章可以查看我的博客:caicongyang 

http://blog.csdn.net/caicongyang





推荐阅读
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
author-avatar
静卍谧梁言_250
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有