solr 的使用方式

本文详细介绍了如何在Solr中配置动态域,包括指定域名、类型、索引存储等,并展示了如何使用Spring Data Solr操作数据库数据,导入至Solr并执行查询。涉及的jar包、配置文件和关键API都被涵盖。
摘要由CSDN通过智能技术生成

solr 的使用方式

·name:指定域的名称
·type:指定域的类型
·indexed:是否索引
·stored:是否存储
·required:是否必须
·multiValued:是否多值

配置tomcat 中的动态域

solrHOME\collection1\confschema.xml

普通域

## 复制域 ## 动态域

jar包

<dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-solr</artifactId>
        <version>2.0.1.RELEASE</version>
    </dependency>

配置文件

   <solr:solr-server id="solrServer" url="http://127.0.0.1:8080/solr"></solr:solr-server>

<!-- 创建 spring 中需要使用的 sorlTemplate 模板-->
<bean id="solrTemplate" class="org.springframework.data.solr.core.SolrTemplate">
    <constructor-arg ref="solrServer"></constructor-arg>
</bean>

先用工具类向数据库中添加想要的数据

 @Autowired
    private TbItemMapper tbItemMapper;

@Autowired
private SolrTemplate solrTemplate;
/**
 * 倒入商品数据
 */
    public void importItemData(){
	
        TbItemExample tbItemExample = new TbItemExample();
//        向 tbItemExample  中添加条件
        TbItemExample.Criteria criteria = tbItemExample.createCriteria();
//        添加条件   添加 状态为 1  的 数据
        criteria.andStatusEqualTo("1");

    List<TbItem> tbItems = tbItemMapper.selectByExample(tbItemExample);
    for (int i = 0; i < tbItems.size(); i++) {
//            将 spec 中的 json 字符穿 转换成为  map 形式
            Map map  = JSON.parseObject(tbItems.get(i).getSpec());
//              给 带注解的 字段赋值     也就是 将 获取的数据  赋值 给 tomcat 中的 动态域    也就是 TbItem 类中的 specMap @Dunamic 动态域
            tbItems.get(i).setSpecMap(map);
            System.out.println(tbItems.get(i));
        }
//         倒入 数据
        solrTemplate.saveBeans(tbItems);
        solrTemplate.commit();

查询数据

@Autowired
    private SolrTemplate solrTemplate;

/**
 *  在 service 层将数据  需要的数据进行过滤 然后并 将其 加入到  solr
 *  中
 * @param searchMap
 * @return
 */
@Override
public Map<String, Object> search(Map searchMap) {

    HashMap<String, Object> map = new HashMap<>();
    Query query = new SimpleQuery();
//         添加查询条件
//         让 item——keywords 的 值为  指定值  域名                                          值
        Criteria criteria1 = new Criteria("item_keywords").is(searchMap.get("keywords"));
         query.addCriteria(criteria1);
        ScoredPage<TbItem> tbItems = solrTemplate.queryForPage(query, TbItem.class);
        map.put("rows",tbItems.getContent());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值