4.solrj对索引的增删改查
2015-08-29 11:15
351 查看
1.使用solrj版本为5.2.1
2.索引对象POJO
3.单元测试
2.索引对象POJO
package com.szss.test.solrj; import org.apache.solr.client.solrj.beans.Field; import java.io.Serializable; import java.util.Date; public class Product implements Serializable { @Field("id") private String id; @Field("product_full_name") private String productFullName; @Field("date_created") private Date dateCreated; @Field("last_updated") private Date lastUpdated; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getProductFullName() { return productFullName; } public void setProductFullName(String productFullName) { this.productFullName = productFullName; } public Date getDateCreated() { return dateCreated; } public void setDateCreated(Date dateCreated) { this.dateCreated = dateCreated; } public Date getLastUpdated() { return lastUpdated; } public void setLastUpdated(Date lastUpdated) { this.lastUpdated = lastUpdated; } }
3.单元测试
package com.szss.test.solrj; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.response.FacetField; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrDocument; import org.apache.solr.common.SolrDocumentList; import org.apache.solr.common.params.ModifiableSolrParams; import org.junit.Before; import org.junit.Test; import java.io.IOException; import java.util.Iterator; import java.util.List; public class SolrTest { private SolrClient client; // @Before // public void init(){ // client = new CloudSolrClient("192.168.7.1:2181,192.168.7.2:2181,192.168.7.3:2181"); // client.setDefaultCollection("solr"); // } @Before public void init() { String urlString = "http://localhost:8989/solr/test"; client = new HttpSolrClient(urlString); } /** * 全量索引 */ @Test public void fullImport() { ModifiableSolrParams params = new ModifiableSolrParams(); params.set("qt", "/dataimport"); params.set("command", "full-import"); QueryResponse response = null; try { response = client.query(params); } catch (Exception e1) { e1.printStackTrace(); } System.out.println(response); } /** * 增量索引 */ @Test public void deltaImport() { ModifiableSolrParams params = new ModifiableSolrParams(); params.set("qt", "/dataimport"); params.set("command", "delta-import"); QueryResponse response = null; try { response = client.query(params); } catch (Exception e1) { e1.printStackTrace(); } System.out.println(response); } /** * 查询 * @throws SolrServerException * @throws IOException */ @Test public void solrQuery() throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery("product_full_name:笔记本"); solrQuery.setStart(0); solrQuery.setRows(10);//可以用于分页 solrQuery.addSort("product_full_name", SolrQuery.ORDER.asc); QueryResponse response = client.query(solrQuery); SolrDocumentList list = response.getResults(); for (Iterator iterator = list.iterator(); iterator.hasNext(); ) { SolrDocument product = (SolrDocument) iterator.next(); System.out.println(product.get("product_full_name")); } } /** * 查询结果封装为实体 * @throws SolrServerException * @throws IOException */ @Test public void solrQueryBean() throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery("product_full_name:笔记本"); solrQuery.setStart(0); solrQuery.setRows(10);//可以用于分页 solrQuery.addSort("product_full_name", SolrQuery.ORDER.asc); QueryResponse response = client.query(solrQuery); List<Product> list = response.getBeans(Product.class); for (Iterator iterator = list.iterator(); iterator.hasNext(); ) { Product product = (Product) iterator.next(); System.out.println(product.getProductFullName()); } } /** * 匹配结果的数量 * @throws SolrServerException * @throws IOException */ @Test public void queryFacet() throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery("product_full_name:‘笔记本’"); solrQuery.setFacet(true); solrQuery.addFacetField("product_full_name"); QueryResponse queryResponse = client.query(solrQuery); List<FacetField> facetFields = queryResponse.getFacetFields(); for (FacetField field : facetFields) { System.out.println(field.getName()); List<FacetField.Count> counts = field.getValues(); for (FacetField.Count count : counts) { System.out.println(count.getName() + " : " + count.getCount()); } } } }
相关文章推荐
- Win10 Mobile/PC版《照片》更新以及下载:Bug修复和性能优化
- HDU 1071 The area(计算几何)
- Java中实现CallBack功能
- matlab常用小函数(一)
- NGUI_2.6.3_(3D视图&ScrollView)
- cc、gcc、g++、CC的区别概括
- NSString转NSData,以及char*转NSData
- 少一点伤感
- 瀑布流布局——jquery
- 2015.8.28 字符串
- HDU 2955 Robberies
- 别让任何人偷走您的梦
- Android:透明状态栏的效果实现
- SDUT-3303-来发背包开开胃
- Smart210 U-Boot移植 之Readme文件分析 (基于u-boot-2015.07)
- uvalive5989(水题)
- 网站实时信息采集和统计graphite
- iOS中ScrollView的属性和方法详解
- Android开发个人
- NGUI_2.6.3_系列教程六(序列帧动画)