Spring-Data-Solr⑴

本文详细介绍如何使用Spring Data Solr进行全文检索应用开发,包括配置依赖、设置核心配置文件、创建实体类映射、实现索引操作及复杂查询。通过具体步骤与代码示例,帮助读者快速掌握Solr集成技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

##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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值