solrj的使用,环境准备,工程搭建,索引创建,添加\修改索引,删除索引,查询
来源:互联网 发布:大数据新手视频 编辑:程序博客网 时间:2024/04/18 11:35
1 Solrj的使用
1.1 什么是solrj
Solrj是访问solr服务的java程序客户端。
1.2 需求
使用solrj调用solr服务实现对索引库的增删改查操作。
1.3 环境准备
l Solr:4.10.3
l Jdk环境:1.7.0_72(solr4.10 不能使用jdk1.7以下)
l Ide环境:eclipse indigo
1.4 工程搭建
1.4.1 第一步:创建java工程
1.4.2 第二步:添加jar
l Solrj的包
如上图:
solr-solrj-4.10.3.jar是solr的核心包
solrj-lib是solr的依赖包,若创建的是java工程,需要将solr-solrj-4.10.3.jar和solrj-lib中的包都添加到工程的lib包里面。
l Solr服务的其它依赖包
1.5 代码实现
1.5.1 添加\修改索引
注意:在solr中添加和修改必须含有一个唯一主键,如果该主键已经存在,则进行修改操作,否则就执行添加操作
@Test
public void updateIndex() throws Exception {
// 创建HttpSolrServer,可以访问solr服务
// 参数就是solr服务的url
HttpSolrServer server = new HttpSolrServer("http://localhost:8080/solr");
// solr的文档对象
SolrInputDocument doc = new SolrInputDocument();
// 图书信息
doc.addField("id", "8888");
doc.addField("product_name", "solr编程思想");
doc.addField("product_catalog", "99");
doc.addField("product_catalog_name", "图书");
doc.addField("product_price", "8888.00");
// 执行添加操作,如果该id存在,则进行修改
server.add(doc);
// 提交
server.commit();
}
1.5.2 删除索引
@Test
public void deleteIndex() throws Exception {
// 创建HttpSolrServer,可以访问solr服务
// 参数就是solr服务的url
HttpSolrServer server = new HttpSolrServer("http://localhost:8080/solr");
// 根据id删除
// server.deleteById("8888");
// 根据查询条件删除
server.deleteByQuery("id:8888");
// 全部删除、慎用!!!!
// server.deleteByQuery("*:*");
// 提交
server.commit();
}
查询
package cn.com.hbny.solr;
import java.util.List;
import java.util.Map;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.junit.Test;
/**
* @brief IndexManager.java
* @attention 学习案例
* @author toto
* @date 2017年3月12日
* @note begin modify by 修改人 修改时间 修改内容摘要说明
*/
public class IndexSearch {
@Test
public void search() throws Exception {
//创建HttpSolrServer,可以访问solr服务
//参数就是solr服务的url
HttpSolrServer server = new HttpSolrServer("http://localhost:8080/solr");
//创建solrQuery对象
SolrQuery query = new SolrQuery();
//设置q,查询条件
query.set("q", "product_name:小黄人");
//设置fg,过滤查询条件
query.set("fq", "product_catalog_name:幽默杂货");
//设置sort,排序
query.set("sort", "product_price desc");
//设置start,rows,分页信息(写上默认值)
query.setStart(0);
query.setRows(10);
//设置df
query.set("df", "product_keywords");
//设置高亮
query.setHighlight(true);
query.addHighlightField("product_name");
query.setHighlightSimplePre("<font style=\"color:red\">");
query.setHighlightSimplePost("</font>");
//执行搜索,并获得返回值
QueryResponse response = server.query(query);
//根据查询条件匹配出的结果对象
SolrDocumentList list = response.getResults();
//匹配出的结果总数
long count = list.getNumFound();
System.out.println("匹配出的结构总数:" + count);
//获取高亮信息
Map<String, Map<String, List<String>>> highlighting = response.getHighlighting();
for (SolrDocument solrDocument : list) {
System.out.println("商品id:" + solrDocument.get("id"));
System.out.println("商品名称:" + solrDocument.get("product_name"));
System.out.println("商品分类:" + solrDocument.get("product_catalog"));
System.out.println("商品分类名称:"
+ solrDocument.get("product_catalog_name"));
System.out.println("商品价格:" + solrDocument.get("product_price"));
// System.out.println("商品描述:"+solrDocument.get("product_description"));
System.out.println("商品图片地址:" + solrDocument.get("product_picture"));
List<String> list2 = highlighting.get(solrDocument.get("id")).get("product_name");
if(list2!=null){
System.out.println("高亮后的信息:"+list2.get(0));
}
}
}
}
- solrj的使用,环境准备,工程搭建,索引创建,添加\修改索引,删除索引,查询
- 使用SolrJ创建索引
- solrj实现基本的添加索引,查询
- mysql 创建索引、修改索引、删除索引的命令
- MySQL 创建索引、修改索引、删除索引的命令语句
- MySQL 创建索引、重建索引、查询索引、删除索引
- solrJ对索引的删除操作
- mysql索引学习----2----创建索引、修改索引、删除索引的命令语句
- Oracle 索引的建立、修改、删除、查询
- Oracle 索引的建立、修改、删除、查询
- Mysql 索引的创建删除修改
- Oracle 索引的创建,删除,修改
- mysql索引删除,修改,添加
- solrj创建富文本索引
- mysql索引创建修改删除
- mysql 创建,删除,修改索引
- MySql 创建、删除、查询索引
- MySQL索引创建,删除。查询
- Java利用动态代理模拟实现Spring的AOP(面向切面编程)功能的小实践
- Chrome开发者工具不完全指南(六、插件篇)
- Linux usb子系统(一) _写一个usb鼠标驱动
- 编程思想——程序设计
- 设计模式——工厂方法模式
- solrj的使用,环境准备,工程搭建,索引创建,添加\修改索引,删除索引,查询
- Spark RDD 实现电影点评用户行为分析 (Scala)
- 编写原生android应用
- Linux下MPI环境的安装配置及MPI程序的编译运行
- Site Mesh页面框架
- JavaEE 的EJB容器搭建的错误与解决方法
- 小五音乐
- LeetCode 2. Add Two Numbers
- 使用国内镜像库安装TensorFlow