solr系列--solrj使用

时间:2021-11-15 04:40:47
solrj是solr的java客户端,用于访问solr索引库。它提供了添加、删除、查询、优化等功能。
配置jar:
/dist/solrj-lib下的所有jar
solr-solrj-5.2.1.jar
server/lib/ext下所有jar


如果Maven来构建项目,添加以下代码到你的pom.xml配置文件中
<dependency> 
        <artifactId>solr-solrj</artifactId> 
        <groupId>org.apache.solr</groupId> 
        <version>1.4.0</version> 
        <type>jar</type>
        <scope>compile</scope> 
</dependency>
<dependency> 
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.5.6</version> 
</dependency>


@Test
public void createIndex() throws Exception {


// 创建HttpSolrClient
// 参数:表示solr服务的访问基础URL
HttpSolrClient server = new HttpSolrClient("http://localhost:8080/solr");
// 通过server添加SolrInputDocument
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", "c001");
doc.addField("content_ik", "我爱传智播客22222");


server.add(doc);
// 提交操作
server.commit();
}


@Test
public void deleteIndex() throws Exception {


// 创建HttpSolrClient
// 参数:表示solr服务的访问基础URL
HttpSolrClient server = new HttpSolrClient("http://localhost:8080/solr");


// 通过id删除
// server.deleteById("c001");


// 根据查询条件删除
server.deleteByQuery("id:c001");


// 批量删除
server.deleteByQuery("*:*");


// 提交操作
server.commit();
}


@Test
public void search01() throws Exception {
// 创建HttpSolrClient
// 参数:表示solr服务的访问基础URL
HttpSolrClient server = new HttpSolrClient("http://localhost:8080/solr");
// 创建查询对象
SolrQuery query = new SolrQuery();
// 设置查询条件
query.setQuery("*:*");
// 通过server查询,并返回结果
QueryResponse response = server.query(query);
// 获取查询结果
SolrDocumentList results = response.getResults();
// 匹配出的所有商品记录
long count = results.getNumFound();
System.out.println("匹配出的所有商品记录:" + count);
for (SolrDocument solrDocument : results) {
System.out.println("商品ID:" + solrDocument.get("id"));
System.out.println("商品名称:" + solrDocument.get("product_name"));
System.out.println("商品分类名称:"
+ solrDocument.get("product_catalog_name"));
System.out.println("商品价格:" + solrDocument.get("product_price"));
System.out.println("商品图片地址:" + solrDocument.get("product_picture"));
System.out.println("=======================================");
}


}