Spring-Data-Solr⑴

##Spring-Data-Solr入門

  1. 導入jar包

     <dependency>
         <groupId>org.springframework.data</groupId>
         <artifactId>spring-data-solr</artifactId>
         <version>1.5.5.RELEASE</version>
     </dependency>
     <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-test</artifactId>
         <version>4.2.4.RELEASE</version>
     </dependency>
     <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>4.12</version>
     </dependency>
    

2 .配置springdatasolr核心配置文件

	<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>

3.創建實體類映射字段信息
實體類字段信息與solr配置文件schema.xml中域的值進行映射

	@Field("items_image")
	private String image;

4.實現索引的增加

	solrTemplate.saveBean();   添加---修改

	solrTemplate.getById();  --- 根據主鍵查詢

	solrTemplate.deleteById();   --- 根據主鍵刪除

	solrTemplate.saveBeans(List);   ----插入多條數據
    
    SimpleQuery query = new SimpleQuery();
	Criteria criteria = new Criteria(filedname).is(keywords);
    criteria = query.addCriteria(criteria);  ---- 多條件查詢

    ScoredPage<TbItem> tbItems = solrTemplate.queryForPage(query, TbItem.class); --- 分頁查詢

	SolrDataQuery query1 = new SimpleQuery("*:*");
    solrTemplate.delete(query1);
    solrTemplate.commit();   ----- 刪除所有

動態域的實現(spec)

1.配置動態域例
	<dynamicField name="item_spec_*" type="string" indexed="true" stored="true" />

2.改變實體類屬性
	@Dynamic
    @Field("item_spec_*")
    private Map<String,String> specMap;

3.數據封裝時,把 specMap  數據轉換成map保存即可
	Map specMap = JSON.parseObject(item.getSpec(), Map.class);//從數據庫中提取規格json字符串轉換爲map
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章