spring-data-solr:第一步.基本po类与schema.xml文件的对应

spring-data-solr:第一步.基本po类与schema.xml文件的对应

参考代码:https://github.com/spring-projects/spring-data-solr-examples

SolrPo类:

package com.md.product.po.so;

import com.wzy.pomelo.base.beans.Po;
import org.apache.solr.client.solrj.beans.Field;
import org.springframework.data.annotation.Id;
import org.springframework.data.solr.core.mapping.Dynamic;

/**
 * 类描述:Solr索引Po类
 *
 * @author fengyong
 * @version 1.0
 * @since 1.0
 * Created by fengyong on 16/5/3 下午5:21.
 */
public class SolrProductIndex extends Po implements SearchableSolrProductIndexDefinition {

    /**
     * itemId
     */
    @Id
    @Field(ITEMID_FIELD_NAME)
    private String itemId;

    /**
     * 商品基本属性集合
     */
    @Dynamic
    @Field(FILTERQUERYITEMSPECMAP_FIELD_NAME)
    private Map<String, List<String>> filterQuerySpuAttrMap;

    /**
     * 商品基本属性集合
     */
    @Field(FILTERQUERYITEMSPECLIST_FIELD_NAME)
    private List<String> filterQuerySpuAttrList;

    /**
     * 商品品规属性集合
     */

    private Map<String, String> filterQueryItemSpecMap;

    /**
     * 商品品规属性集合
     */

    private List<String> filterQueryItemSpecList;
}

schema.xml文件定义:

<dynamicField name="filterQueryItem_*"  type="string"  indexed="true"   multiValued="true"/>

生成的索引大概长下面这个样子:

特殊字段说明:

本次应用的特殊字段只有动态字段filterQueryItem_*,与java中的map集合相对应

Map<String, List<String>> filterQuerySpuAttrMap;

filterQueryItem_*

单个动态字段可产生相对应的N个solr普通字段,每个普通字段的name为java中map集合的key

map中的value为list集合,与solr字段中属性multiValued相对应,意思为多值字段

SolrPo与schema.xml对应关系,理解动态字段的对应关系就可以了,别的字段对应只要数据类型相对应,就可以匹配成功,多值字段可以与String[]或者list<String>相对应.

顺便提一句在别的地方看到并且已经亲测的事实,solr八小时时区的问题,在solr管理界面中的数据是有八小时时区问题,但是使用solrJ或者spring查出来的数据就是存进去的数据,不存在时区问题.所以不需要特殊处理

时间: 2024-10-13 02:33:37

spring-data-solr:第一步.基本po类与schema.xml文件的对应的相关文章

spring data solr 使用内嵌Solr服务器(单核)

1.如何在开发环境下配置spring datasolr来使用嵌入式Solr Server 可以根据官方给出的案例项目(spring-data-book),找到带有Embedded的类,即是使用嵌入式的solrServer,优点:不用自己配置环境,就可以学习使用spring data solr,注意:在该类中,被@after注解的函数内,包含删除数据并关闭EmbeddedSolrServer. 2.创建一个嵌入式SolrServer 很简单,先在官网上下载源码:spring-data-solr-m

记录一次Spring Data Solr相关的错误解决

记录一次Spring Data Solr相关的错误解决 生活本不易,流人遂自安 相信大家也使用过SpringDataSolr,但是在最新版的SpringDataSolr 4.0.5 RELEASE中有些方法已经和以前的版本有些大不一样了.本次主要表达的是分组查询的不同. 问题描述 以前的分组查询是这样的: 创建分组对象,并设置查询条件 构建分组选项并且设置分组选项 获取分组页 获取分组结果对象 获取分组入口也groupEntries 从入口页中获取入口集合getContent 如果你按照这种设置

Spring Data Solr相关配置

1.增加Maven POM文件的存储库:pom配置如下: <repositories> <repository> <id>spring-milestone</id> <name>Spring Milestone Maven Repository</name> <url>http://repo.springsource.org/libs-milestone</url> </repository> &l

SpringBoot整合Spring Data Solr

此文不讲solr相关,只讲整合,内容清单如下 1. maven依赖坐标 2. application.properties配置 3. Java Config配置 1. maven坐标 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-solr</artifactId></dependency> 2.

spring Data solr依赖文件 和xml配置文件

<dependencies>        <dependency>            <groupId>org.springframework.data</groupId>            <artifactId>spring-data-solr</artifactId>            <version>1.5.5.RELEASE</version>        </dependen

MyBatis Spring整合配置映射接口类与映射xml文件

Spring整合MyBatis使用到了mybatis-spring,在配置mybatis映射文件的时候,一般会使用MapperScannerConfigurer,MapperScannerConfigurer会自动扫描basePackage指定的包,找到映射接口类和映射XML文件,并进行注入.配置如下: [html] view plain copy <!-- 数据源 --> <bean id="dataSource" class="com.mchange.v

Spring Data Redis 2.x 中 RedisConfiguration 类的新编写方法

在 Spring Data Redis 1.x 的时候,我们可能会在项目中编写这样一个RedisConfig类: @Configuration @EnableCaching public class RedisConfig { @SuppressWarnings({ "rawtypes", "unchecked" }) @Bean(name = "redisTemplate") public RedisTemplate initRedisTemp

Spring MVC框架下在java代码中访问applicationContext.xml文件中配置的文件(可以用于读取配置文件内容)

<bean id="propertyConfigurer" class="com.****.framework.core.SpringPropertiesUtil" lazy-init="false"> <property name="locations"> <list> <value>classpath:config/sys.properties</value> &

Spring原理探索第一步-以excel导入为列探讨SpringIoc原理

问题描述 一个excel中有两个sheet页,第一个sheet页保存的是本月的数据,第二个sheet页保存的是次月的数据,两个sheet页中的数据都分别对应着数据库中不同的两张表,如何实现excel往数据库的导入呢. 问题分析 1 excel数据解析: 使用POI或者JXL 2 数据映射 因为两个sheet页分别对应着不同的两张表,就涉及挑数这个问题,要分别处理 3 数据保存: 用hibernate保存对象即可 解决方案 根据分析问题分析,我们很容易的就想到一种解决办法 本月sheet页:解析数