pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.cloudwise</groupId>
    <artifactId>solr_maven_demo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.apache.solr/solr-core -->
        <dependency>
            <groupId>org.apache.solr</groupId>
            <artifactId>solr-solrj</artifactId>
            <version>4.10.1</version>
        </dependency>

        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>

    </dependencies>

</project>
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class Solr {
	public static void main(String[] args) {
		//获得solr服务
		HttpSolrServer hs = new HttpSolrServer("http://10.0.1.225:2222/solr/collection1");
		SolrInputDocument inputDocument = new SolrInputDocument();
		//=========================向solr添加field的一种方法=================
		try {
			//向文档中添加域以及对应的值,注意:所有的域必须在schema.xml中定义过,前面已经给出过我定义的域。
			inputDocument.addField("id", "1");
			inputDocument.addField("title", "我们一起学猫叫");
			hs.add(inputDocument);
			hs.commit();
		} catch (SolrServerException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	//=========================向solr添加field的另一种方法=================
		/*SorlUtils sorlUtils=SorlUtils.getInstance();*/
		//solr对象实体
		SolrTestBean sb = new SolrTestBean();
//	    sb.setId("2");
//	    sb.setTitle("一起喵喵喵喵喵~");

		List<SolrTestBean> lst = new ArrayList<SolrTestBean>();
		for (int i = 2; i < 15; i++) {
			sb = new SolrTestBean();
			sb.setId(i + "");
			sb.setTitle("一起喵喵喵喵喵~" + i);
			lst.add(sb);
		}
		try {

			//添加数据
//	            UpdateResponse ur=hs.addBean(sb);
//				hs.addBean(sb);
//	            hs.commit();//提交
			//添加批量数据
			UpdateResponse ur = hs.addBeans(lst);
			hs.commit();//提交
			//删除数据
//	            hs.deleteById("10");
//	         hs.commit();//提交

//	         查询数据
			SolrQuery query = new SolrQuery("一起喵喵");
//	        query.set("q","id:10");
			query.setRows(15);
			//得到查询响应对象
			QueryResponse response = hs.query(query);
			//得到返回结果集
			SolrDocumentList doclist = response.getResults();

			for (int i = 0; i < doclist.getNumFound(); i++) {
				System.out.println("id:" + doclist.get(i).get("id") + "---title:" + doclist.get(i).get("title"));
			}

	            /*int result= ur.getStatus();
62  System.out.println(result);*/
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}
import org.apache.solr.client.solrj.beans.Field;

public class SolrTestBean {
//注意这里必须加注解
	@Field("id")
	public String id;
	@Field("title")
	public String title;

	public String getId() {
		return id;
	}

	public void setId( String id) {
		this.id = id;
	}

	public String getTitle() {
		return title;
	}
	public void setTitle( String title) {
		this.title = title;
	}
}

添加完了可以先在客户端验证一下:

错误:

Exception in thread "main" org.apache.solr.client.solrj.beans.BindingException:
class: class solr.PeopleBean does not define any fields.

上面的实体类中没有加入@Field("")注解。

Solrj demo的更多相关文章

  1. Solr配置与简单Demo[转]

    Solr配置与简单Demo 简介: solr是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目.它的官方网址在http://lucene.apache.org/sol ...

  2. 使用solrj操作solr索引库,solr是lucene服务器

    客户端开发 Solrj 客户端开发 Solrj Solr是搭建好的lucene服务器 当然不可能完全满足一般的业务需求 可能 要针对各种的架构和业务调整 这里就需要用到Solrj了 Solrj是Sol ...

  3. solrj 测试连接 6.6.5solr集群

    我开始环境是 linux上是6.6.5  pom也是6.6.5 按照学习视频的demo,他用的是4点几的solr,我换成了6点几的,没有CloudSolrServer  只有CloudSolrClie ...

  4. Solr系列四:Solr(solrj 、索引API 、 结构化数据导入)

    一.SolrJ介绍 1. SolrJ是什么? Solr提供的用于JAVA应用中访问solr服务API的客户端jar.在我们的应用中引入solrj: <dependency> <gro ...

  5. solr环境搭建及java小demo

    一配置solr环境 1.下载solr 2.配置solr(最好单独分离出一个tomcat,一台机器启动多个tomcat参见:http://www.cnblogs.com/lxlwellaccessful ...

  6. 使用solrJ创建索引

    sorlJ官方介绍谷歌翻译 SolrJ是一个API,可以让Java应用程序轻松与Solr对话. SolrJ隐藏了很多连接到Solr的细节,并允许您的应用程序通过简单的高级方法与Solr进行交互.  p ...

  7. Solr JAVA客户端SolrJ的使用

    一.Solrj简介 SolrJ是操作Solr的JAVA客户端,它提供了增加.修改.删除.查询Solr索引的JAVA接口.SolrJ针对 Solr提供了Rest 的HTTP接口进行了封装, SolrJ底 ...

  8. 通过一个demo了解Redux

    TodoList小demo 效果展示 项目地址 (单向)数据流 数据流是我们的行为与响应的抽象:使用数据流能帮我们明确了行为对应的响应,这和react的状态可预测的思想是不谋而合的. 常见的数据流框架 ...

  9. 很多人很想知道怎么扫一扫二维码就能打开网站,就能添加联系人,就能链接wifi,今天说下这些格式,明天做个demo

    有些功能部分手机不能使用,网站,通讯录,wifi基本上每个手机都可以使用. 在看之前你可以扫一扫下面几个二维码先看看效果: 1.二维码生成 网址 (URL) 包含网址的 二维码生成 是大家平时最常接触 ...

随机推荐

  1. scrapy不抓取重复的网页解决办法

    1.scrapy爬虫遇到一个问题,有时候会对一个网页重复爬取提取不同的数据,这时候会发现,后面的那个重复爬取scrapy直接终止了. 原因: scrapy 的request逻辑里面  dont_fil ...

  2. mysql sql时间戳格式化语句

    FROM_UNIXTIME(c.lastUpdateTime/1000,'%Y-%c-%d %h:%i:%s' ) as updatetime; select c.roleid, r.username ...

  3. 使用Fiddler模拟弱网络环境测试

    https://blog.csdn.net/swordgirl2011/article/details/51765237 https://www.cnblogs.com/longronglang/p/ ...

  4. Idea中创建maven骨架的命令

    如下:通过命令化在Idea中创建骨架成功后,以后项目直接引用导入骨架直接在依赖框架上面进行相关模块开发: 1.mvn archetype:create-from-project 2.mvn clean ...

  5. 【JZOJ6368】质树(tree)

    description 大神 wyp 手里有棵二叉树,每个点有一个点权.大神 wyp 的这棵树是质树,因为 随便找两个不同的点 u, v,只要 u 是 v 的祖先,都满足 u 和 v 的点权互质. 现 ...

  6. 校园商铺-2Logback配置与使用-2Logback配置

    logback配置文件加载顺序 logback:程序在运行的时候,会按照一定的顺序去加载logbook相关的配置文件. 如果我们在配置里面制定了logbackConfigurationFile这个属性 ...

  7. JS基础知识回顾

    回顾 由于 JavaScript 高级还是针对 JavaScript 语言本身的一个进阶学习,所以在开始之前我们先对以前所学过的 JavaScript 相关知识点做一个快速复习总结. 重新介绍 Jav ...

  8. tomcat8乱码问题

    1:注册表里修改  1):找到 HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe 如果 该项下已存在CodePage项,则把值改为十进制” ...

  9. 在idesktop中加载天地图服务并叠加矢量数据

    在天地图中加载天地图在线服务,然后叠加上我们制作的专题图,可以查看制图效果. 以加载山东省天地图矢量地图服务为例: 服务地址: http://www.sdmap.gov.cn/tileservice/ ...

  10. 可拖拽排序的vue组件

    最近在优化一个vue的博客系统,想实现文章列表处的文章拖拽功能.就试了一下awe-dnd vue插件,觉得还挺好用的. 安装 npm install awe-dnd --save 使用 在main.j ...