使用solrJ管理索引库

使用SolrJ可以实现索引库的增删改查操作。

1.1. 添加文档

第一步:把solrJjar包添加到工程中。

第二步:创建一个SolrServer,使用HttpSolrServer创建对象。

第三步:创建一个文档对象SolrInputDocument对象。

第四步:向文档中添加域。必须有id域,域的名称必须在schema.xml中定义。

第五步:把文档添加到索引库中。

第六步:提交。

@Test

public void addDocument() throws Exception {

// 第一步:把solrJ的jar包添加到工程中。

// 第二步:创建一个SolrServer,使用HttpSolrServer创建对象。

SolrServer solrServer = new HttpSolrServer("http://192.168.25.154:8080/solr");

// 第三步:创建一个文档对象SolrInputDocument对象。

SolrInputDocument document = new SolrInputDocument();

// 第四步:向文档中添加域。必须有id域,域的名称必须在schema.xml中定义。

document.addField("id", "test001");

document.addField("item_title", "测试商品");

document.addField("item_price", "199");

// 第五步:把文档添加到索引库中。

solrServer.add(document);

// 第六步:提交。

solrServer.commit();

}

1.2. 删除文档

1.2.1. 根据id删除

第一步:创建一个SolrServer对象。

第二步:调用SolrServer对象的根据id删除的方法。

第三步:提交。

@Test

public void deleteDocumentById() throws Exception {

// 第一步:创建一个SolrServer对象。

SolrServer solrServer = new HttpSolrServer("http://192.168.25.154:8080/solr");

// 第二步:调用SolrServer对象的根据id删除的方法。

solrServer.deleteById("1");

// 第三步:提交。

solrServer.commit();

}

 

1.2.2. 根据查询删除

@Test

public void deleteDocumentByQuery() throws Exception {

SolrServer solrServer = new HttpSolrServer("http://192.168.25.154:8080/solr");

solrServer.deleteByQuery("title:change.me");

solrServer.commit();

}

 

1.1. 查询索引库

查询步骤:

第一步:创建一个SolrServer对象

第二步:创建一个SolrQuery对象。

第三步:向SolrQuery中添加查询条件、过滤条件。。。

第四步:执行查询。得到一个Response对象。

第五步:取查询结果。

第六步:遍历结果并打印。

 

1.1.1. 简单查询

@Test

public void queryDocument() throws Exception {

// 第一步:创建一个SolrServer对象

SolrServer solrServer = new HttpSolrServer("http://192.168.25.154:8080/solr");

// 第二步:创建一个SolrQuery对象。

SolrQuery query = new SolrQuery();

// 第三步:向SolrQuery中添加查询条件、过滤条件。。。

query.setQuery("*:*");

// 第四步:执行查询。得到一个Response对象。

QueryResponse response = solrServer.query(query);

// 第五步:取查询结果。

SolrDocumentList solrDocumentList = response.getResults();

System.out.println("查询结果的总记录数:" + solrDocumentList.getNumFound());

// 第六步:遍历结果并打印。

for (SolrDocument solrDocument : solrDocumentList) {

System.out.println(solrDocument.get("id"));

System.out.println(solrDocument.get("item_title"));

System.out.println(solrDocument.get("item_price"));

}

}

 

1.1.2. 带高亮显示

@Test

public void queryDocumentWithHighLighting() throws Exception {

// 第一步:创建一个SolrServer对象

SolrServer solrServer = new HttpSolrServer("http://192.168.25.154:8080/solr");

// 第二步:创建一个SolrQuery对象。

SolrQuery query = new SolrQuery();

// 第三步:向SolrQuery中添加查询条件、过滤条件。。。

query.setQuery("测试");

//指定默认搜索域

query.set("df", "item_keywords");

//开启高亮显示

query.setHighlight(true);

//高亮显示的域

query.addHighlightField("item_title");

query.setHighlightSimplePre("<em>");

query.setHighlightSimplePost("</em>");

// 第四步:执行查询。得到一个Response对象。

QueryResponse response = solrServer.query(query);

// 第五步:取查询结果。

SolrDocumentList solrDocumentList = response.getResults();

System.out.println("查询结果的总记录数:" + solrDocumentList.getNumFound());

// 第六步:遍历结果并打印。

for (SolrDocument solrDocument : solrDocumentList) {

System.out.println(solrDocument.get("id"));

//取高亮显示

Map<String, Map<String, List<String>>> highlighting = response.getHighlighting();

List<String> list = highlighting.get(solrDocument.get("id")).get("item_title");

String itemTitle = null;

if (list != null && list.size() > 0) {

itemTitle = list.get(0);

} else {

itemTitle = (String) solrDocument.get("item_title");

}

System.out.println(itemTitle);

System.out.println(solrDocument.get("item_price"));

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值