SpringDataSolr
- 简介:Spring Data Solr就是为了方便Solr的开发所研制的一个框架,其底层是对SolrJ(官方API)的封装。
-
依赖
org.springframework.data
spring-data-solr
1.5.5.RELEASE
org.springframework
spring-test
4.2.4.RELEASE
junit
junit
4.9
-
配置文件
-
SpringContext-solr.xml
<!-- solr服务器地址 --> <solr:solr-server id="solrServer" url="http://127.0.0.1:8080/solr" /> <!-- solr模板,使用solr模板可对索引库进行CRUD的操作 --> <bean id="solrTemplate" class="org.springframework.data.solr.core.SolrTemplate"> <constructor-arg ref="solrServer" /> </bean>
-
-
javaBean
- 创建javaBean,其中需要与solr索引库中对应的字段名称需要加@Field注解
-
增加索引库
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations=”classpath:applicationContext-solr.xml”)
public class TestTemplate {@Autowired private SolrTemplate solrTemplate; @Test public void testAdd(){ TbItem item=new TbItem(); item.setId(1L); item.setBrand("华为"); item.setCategory("手机"); item.setGoodsId(1L); item.setSeller("华为2号专卖店"); item.setTitle("华为Mate9"); item.setPrice(new BigDecimal(2000)); solrTemplate.saveBean(item); solrTemplate.commit(); }
}
-
按主键查询
public void testFindOne(){ TbItem item = solrTemplate.getById(1, TbItem.class); System.out.println(item.getTitle()); }
-
按主键删除
public void testDelete(){ solrTemplate.deleteById("1"); solrTemplate.commit(); }
-
分页查询
public void testPageQuery(){ Query query=new SimpleQuery("*:*"); query.setOffset(20);//开始索引(默认0) query.setRows(20);//每页记录数(默认10) ScoredPage<TbItem> page = solrTemplate.queryForPage(query, TbItem.class); System.out.println("总记录数:"+page.getTotalElements()); List<TbItem> list = page.getContent(); for(TbItem item:list){ System.out.println(item.getTitle() +item.getPrice()); } }
-
条件查询
public void testPageQueryMutil(){ Query query=new SimpleQuery("*:*"); Criteria criteria=new Criteria("item_title").contains("2"); criteria=criteria.and("item_title").contains("5"); query.addCriteria(criteria); ScoredPage<TbItem> page = solrTemplate.queryForPage(query, TbItem.class); System.out.println("总记录数:"+page.getTotalElements()); List<TbItem> list = page.getContent(); for(TbItem item:list){ System.out.println(item.getTitle() +item.getPrice()); } }
--------------------- 本文来自 嘿烂泥啊 的优快云 博客 ,全文地址请点击:https://blog.youkuaiyun.com/sinat_38718822/article/details/81637639?utm_source=copy