百度网盘:jar包solrj
链接:https://pan.baidu.com/s/1HJ5M4YGyXj4AA3Enf6sDsA
提取码:rqy9
步骤:
第一步:创建一个java工程
第二步:导入jar包。包括solrJ的jar包
第三步:和Solr服务器建立连接。HttpSolrServer对象建立连接。
第四步:创建一个SolrInputDocument对象,然后添加域。
第五步:将SolrInputDocument添加到索引库。
第六步:提交。
1. 创建一个java project工程 TestSolrJ
2. 创建一个lib,如上图
3. 在lib中添加jar包
4. 代码编写
在这里添加Junit的jar包
4.1 添加
package com.taotao.solrj;
import java.io.IOException;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.common.SolrInputDocument;
import org.junit.Test;
public class SolrJTest {
@Test
public void addIndex() throws Exception{
//1.连接 solr
SolrServer solr = new HttpSolrServer("http://localhost:8081/solr");
//2.创建索引库
SolrInputDocument document = new SolrInputDocument();
//3.添加信息
document.addField("id", "11111");
document.addField("product_name", "郭凯明");
//把信息添加到索引库中
solr.add(document);
//提交事务
solr.commit();
}
}
4.2 修改
只需要按照原来的id进行重新赋值,就是修改操作.
4.3 删除
/**
* 删除
* @throws SolrServerException
* @throws IOException
*/
@Test
public void delIndex() throws SolrServerException, IOException{
SolrServer server = new HttpSolrServer("http://localhost:8081/solr");
server.deleteById("1");//删除id为1的产品
//server.deleteByQuery("*:*");//删除所有数据
server.commit();
}
id为1的产品已没有
4.4 查询之简单查询
/**
* 简单查询
* @throws SolrServerException
*/
@Test
public void queryIndex() throws SolrServerException{
//1.创建连接
SolrServer server = new HttpSolrServer("http://localhost:8081/solr");
//2.创建查询对象
SolrQuery query = new SolrQuery();
//3.创建查询条件
query.setQuery("*:*");
//4.添加查询条件
QueryResponse response = server.query(query);
//5.获取查询返回结果
SolrDocumentList list = response.getResults();
//6.遍历
for (SolrDocument solrDocument : list) {
String str = solrDocument.get("id")+","+solrDocument.get("product_name")+","+solrDocument.get("product_price");
System.out.println(str);
}
}
4.5 查询之复杂查询
/**
* 复杂查询
* @throws SolrServerException
*/
@Test
public void queryIndexHight() throws SolrServerException{
//创建连接
SolrServer solrServer = new HttpSolrServer("http://localhost:8081/solr");
SolrQuery solrQuery = new SolrQuery();
//添加查询条件
solrQuery.setQuery("product_name:台灯");
//添加 过滤条件
solrQuery.addFilterQuery("product_price:[20 TO 30]");
//添加排序
solrQuery.setSort("product_price",ORDER.desc);
//默认显示10条记录
solrQuery.setStart(0);
solrQuery.setRows(50);//显示条数
//设置显示的返回字段内容
solrQuery.setFields("id,product_name,product_price");
//设置默认搜索域
solrQuery.set("product_keywords");
//高亮显示
solrQuery.setHighlight(true);//打开高亮显示
//设置高亮显示的域
solrQuery.addHighlightField("product_name");
//设置高亮显示的开始标签
solrQuery.setHighlightSimplePre("<span style=\"color:red\">");
solrQuery.setHighlightSimplePost("</span>");
QueryResponse response = solrServer.query(solrQuery);
//获取查询返回结果
SolrDocumentList documentList = response.getResults();
//遍历集合
Map<String, Map<String, List<String>>> highlighting = response.getHighlighting();//取高亮显示的信息
for (SolrDocument solrDocument : documentList) {
List<String> list = highlighting.get(solrDocument.get("id")).get("product_name");
if(list.size()>0&& list !=null){
System.out.println(list.get(0));
}
System.out.println(solrDocument.get("id")+","+solrDocument.get("product_name")+","+solrDocument.get("product_price"));
}
}