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. MySQL按照汉字的拼音排序

    按照汉字的拼音排序,用的比较多是在人名的排序中,按照姓氏的拼音字母,从A到Z排序: 如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字37 ...

  2. 关于asp.net 开发的小技巧—让传值对象化

    前端:前端 定义一个对象, 传值时实例此对象,序列化成json字符串 代码如下: 定义js对象: ///定义一个查询条件对象 var SearchCondition=function(){ this. ...

  3. java后台如何获取String 类型 json里的字段值

    首先把获取到的数据转为json String sbody=Json.getGson().toJson(resp.getResponseBody()); Huanxin 这个类是 json数据对应字段的 ...

  4. mat工具MemoryAnalyzer进行分析java内存溢出hprof文件

    java服务端程序报错后会生成hprof文件,我们可以通过mat工具MemoryAnalyzer进行分析 下载地址: http://www.eclipse.org/mat/downloads.php ...

  5. ---Shell的数组遍历

    1.  一一读入:  read -a A < <(echo a b c d e f g) 2. 遍历输出

  6. 《跑跑跑》(五)——添加障碍物,Tiled障碍层的使用

    [转]http://blog.csdn.net/u010778159/article/details/44036365 首先利用TiledMap在原来的地图上添加上障碍物,先新建两个图层,分别叫bar ...

  7. .net如何向csv添加一列

    using System;using System.Collections.Generic;using System.Drawing;using System.Globalization;using ...

  8. C#实现控制Windows系统关机、重启和注销的方法:

    shutdown命令的参数: shutdown.exe -s:关机shutdown.exe -r:关机并重启shutdown.exe -l:注销当前用户 shutdown.exe -s -t 时间:设 ...

  9. 用EasyWebSvr搭建Axure本地访问地址-转载加完善

    1.下载之后解压到任意一个位置,可以是桌面(反正很小不占空间),如图2:: 图2 解压之后文件目录 2.将生成的原型放在EasyWebSvr根目录下的demo之中,如图3所示: 图3  原型文件放置目 ...

  10. Backbone入门讲解

    Backbone是一个实现了web前端mvc模式的js框架. 一种解决问题的通用方法,我们叫做模式. 设计模式:工厂模式,适配器模式,观察者模式等,推荐js设计模式这本书.设计模式是一种思想. 框架模 ...