package com.livegoods.search.dao.impl;
import com.livegoods.search.dao.ItemDao4ES;
import com.livegoods.search.pojo.Item4ES;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import org.springframework.data.elasticsearch.core.IndexOperations;
import org.springframework.data.elasticsearch.core.SearchHit;
import org.springframework.data.elasticsearch.core.SearchHits;
import org.springframework.data.elasticsearch.core.query.IndexQuery;
import org.springframework.data.elasticsearch.core.query.IndexQueryBuilder;
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
import org.springframework.stereotype.Repository;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Repository
public class ItemDao4ESImpl implements ItemDao4ES {
@Autowired
private ElasticsearchRestTemplate restTemplate;
@Value("${livegoods.search.init.enabled}")
private boolean initEnabled = false;
/**
* 批量添加数据到es
* @param items
*/
@Override
public void batchIndex(List<Item4ES> items) {
//判断是否需要初始化索引
if(initEnabled){
createIndex();
}
ArrayList<IndexQuery> list = new ArrayList<>();
for (Item4ES item : items) {
list.add(new IndexQueryBuilder().withObject(item).build());
}
//批量插入数据
restTemplate.bulkIndex(list,Item4ES.class);
}
/**
* 分页查询
* @param city
* @param content
* @param page
* @param rows
* @return
*/
@Override
public List<Item4ES> queryForPage(String city, String content, int page, int rows) {
//创建搜索条件集合
BoolQueryBuilder shouldBuilder = QueryBuilders.boolQuery()
.should(QueryBuilders.matchQuery("title",content)) //标题搜索
.should(QueryBuilders.matchQuery("houseType",content)) //房屋类型
.should(QueryBuilders.matchQuery("rentType",content)); //租赁类型
//设置查询条件之间的关系
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
queryBuilder.must(QueryBuilders.matchQuery("city",city)).must(shouldBuilder);
//创建搜索条件对象
NativeSearchQuery query = new NativeSearchQueryBuilder()
.withQuery(queryBuilder)
.withPageable(PageRequest.of(page,rows))
.build();
//搜索
SearchHits<Item4ES> resultPage = restTemplate.search(query,Item4ES.class);
List<SearchHit<Item4ES>> searchHits = resultPage.getSearchHits();
ArrayList<Item4ES> list = new ArrayList<>();
for (SearchHit<Item4ES> searchHit : searchHits) {
Item4ES item4ES = new Item4ES();
//构建数据
item4ES.setId(searchHit.getContent().getId());
item4ES.setRentType(searchHit.getContent().getRentType()); //租赁类型
item4ES.setPrice(searchHit.getContent().getPrice()); //价格
item4ES.setImg(searchHit.getContent().getImg()); //图片
item4ES.setHouseType(searchHit.getContent().getHouseType()); //房屋类型
item4ES.setCity(searchHit.getContent().getCity()); //城市
item4ES.setTitle(searchHit.getContent().getTitle()); //商品标题
list.add(item4ES);
}
return list;
}
//创建索引
private void createIndex() {
IndexOperations indexOps = restTemplate.indexOps(Item4ES.class);
if(indexOps.exists()){
indexOps.delete();
}else{
indexOps.create();
indexOps.refresh();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于微服务的租房网项目
共273个文件
class:99个
java:98个
yml:38个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 55 浏览量
2023-12-10
15:26:00
上传
评论
收藏 78.26MB ZIP 举报
温馨提示
微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目微服务租房网项目
资源推荐
资源详情
资源评论
收起资源包目录
基于微服务的租房网项目 (273个子文件)
Item.class 9KB
ItemDao4ESImpl.class 6KB
RecommendationServiceImpl.class 6KB
SecurityConfig.class 6KB
HotProductServiceImpl.class 5KB
Order.class 5KB
Item4ES.class 5KB
CommentServiceImpl.class 4KB
LivegoodsResult.class 4KB
LoginServiceImpl.class 4KB
LoginLog.class 4KB
RedisCacheConfiguration.class 4KB
BuyactionServiceImpl.class 3KB
BuyactionServiceImpl.class 3KB
BannerServiceImpl.class 3KB
TestSearch.class 3KB
Comment.class 3KB
LivegoodsBuyactionConsumer.class 3KB
Banner.class 3KB
DetailServiceImpl.class 2KB
MyAuthenticationService.class 2KB
DetailController.class 2KB
ItemDaoImpl4Redis$1.class 2KB
MyDetailsService.class 2KB
LivegoodsBuyMessage.class 2KB
ValidateCode.class 2KB
ItemDaoImpl4Redis.class 2KB
ItemDaoImpl.class 2KB
OrderDaoImpl.class 2KB
ValidateCodeDaoImpl.class 2KB
LoginController.class 2KB
OrderDaoImpl.class 2KB
CommentController.class 1KB
CommentDaoImpl.class 1KB
SearchServiceImpl.class 1KB
BuytimeServiceImpl.class 1KB
BannerDaoImpl.class 1KB
ItemDaoImpl.class 1KB
ItemDaoImpl.class 1KB
SearchController.class 1KB
ItemDaoImpl.class 1KB
BuyactionMessageConsumerConfig.class 1KB
OrderServiceImpl.class 1KB
HotProductController.class 1KB
BuyactionConfiguration.class 1KB
LoginRedisConfiguration.class 1KB
RecommendationController.class 1017B
BuyactionController.class 988B
OrderController.class 979B
ItemDaoImpl.class 955B
BuytimeController.class 948B
ItemDaoImpl.class 933B
LoginLogDaoImpl.class 924B
OrderDaoImpl.class 922B
BannerController.class 874B
DetailApplication.class 839B
RecordFailurePredicate.class 837B
DetailsConfiguration.class 834B
EurekaServerApplication.class 810B
ConfigApplication.class 796B
MessageConsumerApplication.class 766B
LivegoodsGatewayApplication.class 749B
RecommendationApp.class 733B
BuyactionApplication.class 732B
BuytimeApplication.class 722B
CommentApplication.class 722B
BannerApplication.class 717B
HotProductApp.class 713B
SearchApp.class 693B
LoginApp.class 688B
OrderApp.class 688B
OrderServiceFeignClient.class 636B
ItemDao4ES.class 434B
CommentDao.class 414B
BusinessException.class 412B
ItemDao.class 358B
BannerDao.class 349B
ItemDao.class 347B
CommentService.class 338B
ValidateCodeDao.class 328B
LoginService.class 315B
OrderService.class 287B
OrderDao.class 275B
ItemDao4Redis.class 274B
RecommendationService.class 253B
BuyactionService.class 248B
SearchService.class 238B
HotProductService.class 237B
BuytimeService.class 229B
BuyactionService.class 215B
DetailService.class 213B
BannerService.class 204B
ItemDao.class 199B
ItemDao.class 196B
LoginLogDao.class 195B
ItemDao.class 193B
ItemDao.class 191B
OrderDao.class 188B
OrderDao.class 177B
Dockerfile 140B
共 273 条
- 1
- 2
- 3
资源评论
狮子也疯狂
- 粉丝: 2w+
- 资源: 263
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功