private String categroy;

@Field(type = FieldType.Double)

private Double price;

}

使用ElasticsearchTemplate创建索引,添加映射

@RunWith(SpringJUnit4ClassRunner.class)

@SpringBootTest(classes = SearchServiceApplication.class)

public class ElasticsearchTest {

@Autowired

private ElasticsearchTemplate template;

@Test

public void createIndex(){

//删除索引

template.deleteIndex(Goods.class);

//创建索引

template.createIndex(Goods.class);

//添加映射,将字段映射到类型上

template.putMapping(Goods.class);

}

}

检查结果

操作索引

==================================================================

使用ElasticsearchRepository接口完成索引操作

/**

  • goods索引操作接口

*/

public interface GoodsRepository extends ElasticsearchRepository<Goods,Long> {

}

测试添加数据

@Autowired

private GoodsRepository goodsRepository;

@Test

public void testSave(){

Goods goods = new Goods(1L, “华为P30手机”, “Huawei”, “手机”, 4444.0);

//单条保存,id存在就更新,不存在就添加

goodsRepository.save(goods);

List list = Arrays.asList(

new Goods(2L, “华为P40手机”, “Huawei”, “手机”, 6666.0),

new Goods(3L, “小米11手机”, “MI”, “手机”, 6666.0),

new Goods(4L, “小米12手机”, “MI”, “手机”, 1666.0),

new Goods(5L, “小米13手机”, “MI”, “手机”, 2666.0),

new Goods(6L, “OPPOX1手机”, “oppo”, “手机”, 3666.0),

new Goods(7L, “OPPOX2手机”, “oppo”, “手机”, 4666.0),

new Goods(8L, “OPPOX3手机”, “oppo”, “手机”, 2666.0),

new Goods(9L, “VIVOv1手机”, “vivo”, “手机”, 3666.0),

new Goods(10L, “VIVOv2手机”, “vivo”, “手机”, 5666.0)

);

//多条保存

goodsRepository.saveAll(list);

}

查询数据

==================================================================

ElasticsearchRepository提供了非常强大的查询生成功能,按约定的方式在接口中定义查询方法,它来实现查询。

如:

/**

  • goods索引操作接口

*/

public interface GoodsRepository extends ElasticsearchRepository<Goods,Long> {

//通过名称模糊查询

List findByNameLike(String name);

//查询两个价格之间的商品

List findByPriceBetween(Doubl

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

e p1,Double p2);

}

可以使用的关键字:

| 关键字 | 示例 |

| — | — |

| And | findByNameAndPrice |

| Or | findByNameOrPrice |

| Is | findByName |

| Not | findByNameNot |

| Between | findByPriceBetween |

| LessThan | findByPriceLessThan |

| LessThanEqual | findByPriceLessThanEqual |

| GreaterThan | findByPriceGreaterThan |

| GreaterThanEqual | findByPriceGreaterThan |

| Before | findByPriceBefore |

| After | findByPriceAfter |

| Like | findByNameLike |

| StartingWith | findByNameStartingWith |

| EndingWith | findByNameEndingWith |

| Contains/Containing | findByNameContaining |

| In (when annotated as FieldType.Keyword) | findByNameIn(Collectionnames) |

| In | findByNameIn(Collectionnames) |

| NotIn (when annotated as FieldType.Keyword) | findByNameNotIn(Collectionnames) |

| NotIn | findByNameNotIn(Collectionnames) |

| Near | findByStoreNear |

| True | findByAvailableTrue |

| False | findByAvailableFalse |

| OrderBy | findByAvailableTrueOrderByNameDesc |

测试

@Test

public void testFind(){

List list = goodsRepository.findByNameLike(“华为”);

list.forEach(System.out::println);

List list2 = goodsRepository.findByPriceBetween(3000.0, 5000.0);

list2.forEach(System.out::println);

}

测试其它查询方式

@Test

public void testSearch(){

//基本的搜索

MatchQueryBuilder builder = QueryBuilders.matchQuery(“brand”, “华为”);

//查询结果

Iterable goods = goodsRepository.search(builder);

goods.forEach(System.out::println);

//原生查询生成器

NativeSearchQueryBuilder builder1 = new NativeSearchQueryBuilder();

//生成原生查询

builder1

//.withQuery(QueryBuilders.termQuery(“categroy”,“手机”)) //精确查询

.withQuery(QueryBuilders.fuzzyQuery(“brand”,“oppe”)) //模糊查询,可以查到oppo

.withPageable(PageRequest.of(0,3)) //设置分页

.withSort(SortBuilders.fieldSort(“price”).order(SortOrder.DESC)); //配置排序

//查询结果

Page page = goodsRepository.search(builder1.build());

System.out.println(“total:”+page.getTotalElements());

SpringBoot整合Elasticsearch,中软国际java二面华为面试相关推荐

  1. 中软国际java面试题及参考答案

    面试题是中软国际java个人求职者在面试过程中的敲门砖,以下是小编为大家收集到的,希望对大家有帮助! :填空题 1Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点 B ...

  2. 中软国际java开发面试题_中软国际java面试题及参考答案

    面试题是中软国际java个人求职者在面试过程中的敲门砖,以下是小编为大家收集到的,希望对大家有帮助! :填空题 1Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点? B ...

  3. 中软融鑫 java笔试题_中软国际java笔试题

    中软国际Java程序员笔试题 Java程序员笔试题 1.谈谈final, finally, finalize的区别. 2.Anonymous Inner Class (匿名内部类) 是否可以exten ...

  4. 中软国际java 学徒_辽宁建筑职业学院-中软国际 现代学徒制校企合作签约仪式...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 2019年6月17日,辽宁建筑职业学院校领导一行莅临中软国际参观指导暨现代学徒制签约仪式隆重举行.中软国际教育集团执行CEO李佳历.中软国际大连ETC执行 ...

  5. 腾讯T2大牛手把手教你!中软国际java培训视频

    前言 疫情过去,真正的春暖花开又回来了,时不时的可以和朋友约个饭,感慨今年的工作竞争压力很大,工作很不好找.作为一个开发人员,你是否面上了理想的公司,拿到了理想中的薪资? 作为程序员,跳槽就是最好的涨 ...

  6. 中软国际Java机试,阿里Java算法题

    拼多多三面惨败,java中间件.数据库与spring框架,答不上- 面试开火箭,工作拧螺丝-月初有个朋友面试拼多多,一面自信满满过了,结果三面却惨败-昨天朋友约我出来讨论问题在哪里,三面就答不上了(卡 ...

  7. SpringBoot整合Elasticsearch,应届毕业生java面试准备材料

    使用ElasticsearchTemplate创建索引,添加映射 @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = S ...

  8. SpringBoot整合Elasticsearch,2021最新Java面试真题解析

    @Field(type = FieldType.Keyword) private String categroy; @Field(type = FieldType.Double) private Do ...

  9. java面试分为_【中软国际Java面试】面试分为两轮。-看准网

    面试分为两轮. 面试分为两轮.一面技术面,看了往年的面经,感觉真的好水,不过我面试的时候感觉还是有点难度的,范围很广.数据结构和算法问了8大排序,问了有哪些数据结构,快排的思想,基准怎么找,二分法查找 ...

最新文章

  1. springMVC整合shiro权限框架示例与实践
  2. thinkphp读写mysql的枷锁_thinkphp5 数据库配置读写分离
  3. C语言(rand函数)
  4. 1067 Sort with Swap(0, i) (25 分)【难度: 中 / 知识点: 置换群】
  5. Java基础题笔记1
  6. Fatal error: Call to undefined function randstr()
  7. 女生看了别怨我啊!!!!
  8. python aiml开发文档,带有Python的AIML文件
  9. AVATR阿维塔11维修手册电路图技术资料
  10. 内核流浪猫流浪狗宠物领养平台H5源码
  11. 从线代角度图解:通解、特解、非齐次通解、非齐次特解、齐次通解、齐次特解
  12. centos通过nmcli设置静态ip及设置开机自动连接
  13. 【开发工具】Office Tool Plus 安装 Office
  14. Handler简单介绍
  15. 在Ubuntu中运行.exe程序
  16. extundelete工具恢复rm -rf 删除的目录(ext4、ext3)
  17. eclipse2022配置JDK17 (Java17)
  18. 网络货运新风口下,传统的无车承运人如何实现弯道超车?
  19. win11 更新后无法打开商店、记事本、设置、计算器等内置应用的解决办法【亲测有效】
  20. Redis 的 hash,及其序列化问题

热门文章

  1. 打印表格打印机没有反应_打印机没反应如何解决?打印机连接正常但没反应怎么回事?...
  2. [机房练习赛4.3]drive
  3. 挖个冰块就能修自己,科学家用「冰」做了辆科考机器车,南极火星都能跑
  4. 新冠“登陆”南极,中国极地科考“零感染”
  5. java 浏览器测试,【Java资源大全】Selenium:基于浏览器的测试套件
  6. win10 SystemParametersInfo 设置屏保 不好使_Acer 暗影骑士 N50-N92电脑如何重装win10?win10专业版系统重装教程...
  7. 《Windows 8 权威指南》——2.2 Windows 8 Metro界面
  8. TCPUDP压力测试工具
  9. 前端基础 HTML 第九章 使用框架结构 ----暑假学习第五天
  10. linux将txt文件转化为raw,如何利用qemu-img工具将其它格式的镜像文件转换成VHD或RAW格式...