19使用SolrJ管理索引库

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_20042935/article/details/90077893

什么是solrJ

solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常在嵌入在业务系统中,通过SolrJ的API接口操作Solr服务,如下图:
在这里插入图片描述

依赖的jar包

在这里插入图片描述

添加文档

实现步骤

第一步:创建一个java工程
第二步:导入jar包。包括solrJ的jar包。还需要
在这里插入图片描述
在这里插入图片描述

代码实现

注意: 里面的field的键值必须 solr安装目录/solr/conf 目录下的 schema.xml里面含有!!!

//和solr服务器创建连接
		//参数:solr服务器的地址
		SolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr");
		//创建一个文档对象
		SolrInputDocument document = new SolrInputDocument();
		//向文档中添加域
		//第一个参数:域的名称,域的名称必须是在schema.xml中定义的
		//第二个参数:域的值
		document.addField("id", "c0001");
		document.addField("title", "solr使用说明书");
		document.addField("comments", "使用说明书的评论");
		document.addField("content", "使用说明书内容详情");
		//把document对象添加到索引库中
		solrServer.add(document);
		//提交修改
		solrServer.commit();

在这里插入图片描述

删除文档

根据id删除
	//创建连接
		SolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr");
		//根据id删除文档
		solrServer.deleteById("c0001");
		//提交修改
		solrServer.commit();
根据查询删除

查询语法完全支持Lucene的查询语法。

//创建连接
SolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr");
//根据查询条件删除文档
solrServer.deleteByQuery("*:*");
//提交修改
solrServer.commit();

修改文档

在solrJ中修改没有对应的update方法,只有add方法,只需要添加一条新的文档,和被修改的文档id一致就,可以修改了。本质上就是先删除后添加。

查询文档

//创建连接
		SolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr");
		//创建一个query对象
		SolrQuery query = new SolrQuery();
		//设置查询条件
		query.setQuery("*:*");
		//执行查询
		QueryResponse queryResponse = solrServer.query(query);
		//取查询结果
		SolrDocumentList solrDocumentList = queryResponse.getResults();
		//共查询到商品数量
		System.out.println("共查到的内容:" + solrDocumentList.getNumFound());
		//遍历查询的结果
		for (SolrDocument solrDocument : solrDocumentList) {
			System.out.println(solrDocument.get("id"));
			System.out.println(solrDocument.get("title"));
			System.out.println(solrDocument.get("comments"));
			System.out.println(solrDocument.get("content"));
		}

打印内容:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_20042935/article/details/90077893
今日推荐