全文搜索引擎使用技巧,掌握网站优化关键词布局,提升网站排名,从而获得更多流量 。下面我们一起来看看吧 。seo优化是一个长期的过程,需要不断的学习和积累,只有这样才能不断的提升自己的技术水平,才能在竞争激烈的互联网市场中脱颖而出 。那么seo优化有哪些 *** 呢?下面我们一起来看看吧 。。搜索引擎是网站的核心,也是最重要的部分,所以我们必须了解搜索引擎的规则,掌握一些基本的seo知识,这样才能更好的为网站做优化 。
每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言 。

文章插图
本文展示了如何创建一个搜索用户界面来查询具有多个可选过滤条件的数据库,并在某些条件下进行全文搜索 。JPA Criteria API 可以为可选过滤器子句的实现提供支持 。对于长文本列,Hibernate Search 可以提供全文搜索 。
在MovieManager项目中显示了 Hibernate Search 和 JPA Criteria API 的组合 。API 用于为电影和演员创建搜索用户界面 。
使用 Hibernate Search 和 JPA Criteria API
MovieManager 项目存储电影概述和演员传记的文本数据 。电影和演员的新过滤功能包括对文本数据的全文搜索 。JPA Criteria API 用于实现额外的过滤器功能,因此它可以帮助处理可选的查询组件,如年龄或发布日期 。
后端
MovieController有一个新的rest接口:
@RequestMapping(value = "https://www.dj120.cn/filter-criteria", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public List<MovieDto> getMoviesByCriteria(@Requestheader(value =https://www.dj120.cn/baike/post/
HttpHeaders.AUTHORIZATION) String bearerStr,
@RequestBody MovieFilterCriteriaDTO filterCriteria) {
return this.service.findMoviesByFilterCriteria(bearerStr,
filterCriteria).stream().map(m -> this.mapper.convert(m)).toList();
}
ActorController有一个类似的 rest 接口:
@RequestMapping(value = "https://www.dj120.cn/filter-criteria", method = RequestMethod.POST,
produces = MediaType.APPLICATION_JSON_VALUE, consumes =
MediaType.APPLICATION_JSON_VALUE)
public List<ActorDto> getActorsByCriteria(@RequestHeader(value =https://www.dj120.cn/baike/post/
HttpHeaders.AUTHORIZATION) String bearerStr,
@RequestBody ActorFilterCriteriaDto filterCriteria) {
return this.service.findActorsByFilterCriteria(bearerStr,
filterCriteria).stream().map(m -> this.mapper.convert(m)).toList();
}
这些是需要使用@RequestBody注释映射到 FilterCriteria DTO 的已发布 JSON 的其余端点 。DTO 用于调用服务进行过滤 。
搜索服务
ActorService和MovieService实现过滤服务 。MovieService 显示在这里:
public List<Movie> findMoviesByFilterCriteria(String bearerStr,
MovieFilterCriteriaDto filterCriteriaDto) {
List<Movie> jpaMovies =
this.movieRep.findByFilterCriteria(filterCriteriaDto,
this.auds.getCurrentUser(bearerStr).getId());
SearchTermDto searchTermDto = new SearchTermDto();
searchTermDto.setSearchPhraseDto(filterCriteriaDto.getSearchPhraseDto());
List<Movie> ftMovies = this.findMoviesBySearchTerm(bearerStr,
searchTermDto);
List<Movie> results = jpaMovies;
if (filterCriteriaDto.getSearchPhraseDto() != null &&
!Objects.isNull(filterCriteriaDto.getSearchPhraseDto().getPhrase()) &&
filterCriteriaDto.getSearchPhraseDto().getPhrase().length() > 2) {
Collection<Long> dublicates = CommonUtils.
findDublicates(Stream.of(jpaMovies,ftMovies)
.flatMap(List::stream).toList());
results = Stream.of(jpaMovies, ftMovies).flatMap(List::stream)
.filter(myMovie -> CommonUtils.
- 国内做财务机器人的公司有哪些?
- 在A股里,真正的人工智能龙头除了科大讯飞,还有哪几个?
- 在股票k线和分时图上有哪些特征表明股票洗盘快要结束?
- 国内有哪些优秀的AI电销机器人开发公司?
- 主力洗盘和出货K线形态有哪些?
- 波士顿公司的机器人因为其漂亮的后空翻成了网红,开发机器人的知名创业公司有哪些?
- 什么是洗盘和出货?两者有什么区别?
- 新鲜山楂吃了有什么好处
- 庄家洗盘的方法有哪些,如何判断股票洗盘结束的起爆点?
- 主力洗盘和出货太像,有哪些有效识别的办法?
