solr的客户端基本上只有一个,那就是solrj,spring-data-solr是在solrj的基础上做的封装,使统一成spring-data的风格

   官方网站:

    http://projects.spring.io/spring-data-solr/

   使用spring-data最简单的方式就是使用spring-boot,注意多个spring-data之间不能公用,由于之前我们同样使用了spring-data-jpa 做orm,

  这里要新创建一个项目进行使用spring-data-solr作为solr服务器的客户端,然后通过分布式进行协同使用。

  首先搭建spring-boot项目,具体参考另外一遍博客。

  添加依赖:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-solr</artifactId>
</dependency>

  由于spring-boot是集中性的配置,所以在application.properties文件中添加以下配置:

  

# SOLR (SolrProperties)
spring.data.solr.host=http://localhost:8983/solr/mark
#spring.data.solr.zkHost=
spring.data.solr.repositories.enabled=true

这样就算是配置完成了

  

  使用spring-data-solr与使用spring-data-jpa几乎一毛一样:

  

public interface MarkSolrRepository extends SolrCrudRepository<SearchMark, String> {

    @Query("value:?0")
List<SearchMark> findAllByValue(String markey, Pageable pageable); }

不过有一些区别:

  1.@Query中的是solr的语法,并且参数计数是从0开始的(spring-data-jpa是从1开始的)

  2.每个映射的实体类必须有@ID主键

  

@Entity
public class SearchMark implements Serializable { private static final long serialVersionUID = 1229830543809682342L;
@org.springframework.data.annotation.Id
private String id;// 唯一主键 @Field()
private String value;// 标签的值 @Field()
private int type;// 类型 @Field("datam_id")
private int datamId;// 数据id @Field("create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08")
private Date createTime;// 创建时间

注意@id是@org.springframework.data.annotation.Id

  

  其他用法参考:

  http://projects.spring.io/spring-data-solr/

  http://docs.spring.io/spring-data/solr/docs/1.0.0.RC1/reference/html/

  http://www.petrikainulainen.net/programming/solr/spring-data-solr-tutorial-crud-almost/?utm_source=tuicool&utm_medium=referral

  

使用spring-data-solr做solr客户端的更多相关文章

  1. Spring Data JPA整合REST客户端Feign时: 分页查询的反序列化报错的问题

    Type definition error: [simple type, class org.springframework.data.domain.Page]; nested exception i ...

  2. 初探 spring data(一)--- spring data 概述

    由于自己一个项目要用多到Sql与NoSql两种截然不同的数据结构,但在编程上我希望统一接口API,让不同类型的数据库能在相同的编程接口模式下运作.于是找了一个spring的官网,发现一个spring ...

  3. Spring Data(一)概念和仓库的定义

    Spring Data(一)概念和仓库的定义 Spring Data的主要任务是为数据访问提供一个相似的.一致的.基于Spring的编程模型,同时又保留着下面各个数据存储的特征.它使得使用数据访问技术 ...

  4. 两行代码玩转Spring Data排序和分页

    一:唠嗑 在实际项目中对Spring Data的各种使用相当多,简单的增删改查Spring Data提供了现成的方法,一些复杂的,我们可以在接口方法写And,Not等关键字来搞定,想写原生SQL,CQ ...

  5. Spring Boot使用Spring Data Redis操作Redis(单机/集群)

    说明:Spring Boot简化了Spring Data Redis的引入,只要引入spring-boot-starter-data-redis之后会自动下载相应的Spring Data Redis和 ...

  6. Spring Data学习中心

    Spring Data 概览 Spring Data的使命是为数据访问提供熟悉且一致的基于Spring的编程模型,同时仍保留底层数据存储的特殊特性. 它使数据访问技术,关系数据库和非关系数据库,map ...

  7. 转:使用 Spring Data JPA 简化 JPA 开发

    从一个简单的 JPA 示例开始 本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示 ...

  8. Spring Data JPA 学习记录1 -- 单向1:N关联的一些问题

    开新坑 开新坑了(笑)....公司项目使用的是Spring Data JPA做持久化框架....学习了一段时间以后发现了一点值得注意的小问题.....与大家分享 主要是针对1:N单向关联产生的一系列问 ...

  9. 使用 Spring Data JPA 简化 JPA 开发

    从一个简单的 JPA 示例开始 本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示 ...

  10. Spring data mongodb 聚合,投射,内嵌数组文档分页.

    尽量别直接用 DBObject  ,Spring data mongodb 的api 本来就没什么多大用处,如果还直接用 DBObject 那么还需要自己去解析结果,说动做个对象映射,累不累 Spri ...

随机推荐

  1. JS实现div动态水平垂直居中

    在做页面的过程中,在很多地方都会遇到元素需要水平垂直的居中这个问题,之前总是去网上搜别人的代码,今天仔细研究了一下,分享给大家,先写一个简单的例子: <div class="mui-c ...

  2. eclipse内嵌jetty(run-jetty-run插件) 配置jndi数据源

    运行环境 java 6,eclipse juno,ssh(spring,hibernate,springmvc ) 1.离线安装 下载地址:http://pan.baidu.com/s/1qX67wO ...

  3. 时间序列分析之ARIMA模型预测__R篇

    http://www.cnblogs.com/bicoffee/p/3838049.html

  4. jq实现全选、全不选、反选

    基本思路: 1全选:点击全选按钮的时候,将input的属性checked设置为true; 2全不选:点击全不选按钮的时候,将input的属性checked设置为false; 3反选:点击反选按钮的时候 ...

  5. egret.Tween、egret.Ease

    循环调用.只能设置boolean,不能设置循环次数. egret.Tween.).call(()=>{ console.log("循环调用"); }) 每次改变时,调用onC ...

  6. CSS特殊性值

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. MediaBrowserService 音乐播放项目

    MediaBrowserService 音乐播放项目,本项目主要有如下功能: (1):支持播放在线音乐 (2):按住home键退出页面后显示通知栏部分播放提示,  (3) : 支持切换上下首歌曲 本项 ...

  8. vim+slimv+sbcl搭建lisp的IDE

    流水账而已,分享给需要的人. slimv的首页 http://kovisoft.bitbucket.org/tutorial.html里面介绍说slimv开箱即可用,可是老天总会给一些奇怪的问题给你, ...

  9. flash开发几个问题

    1.跨域请求xml或txt 问题,使用URLLoader,不能跨域使用 2.js和swf交互问题,尽量使用swfobject.js动态创建

  10. 清空表数据 mysql让主键从1开始

    TRUNCATE TABLE name 删除表中的所有行,而不记录单个行删除操作.