当前位置: 首页 > news >正文

网站建设 技术架构工程信息价查询

网站建设 技术架构,工程信息价查询,flash企业网站,wordpress免费企模板包含当前es所有的查询#xff0c; 需要什么代码直接照搬#xff0c;改个参数就行#xff01; 用的好请务必给我点赞#xff01;#xff01;#xff01;感谢爱你们#xff01;#xff01;#xff01; #xff08;周末更 筒#xff09; 为啥写这篇文章呢#xff… 包含当前es所有的查询 需要什么代码直接照搬改个参数就行 用的好请务必给我点赞感谢爱你们 周末更  筒 为啥写这篇文章呢 大概是因为目前公司用的api跟以前的不太一样 以前我们是基于高标准客户端直接做的 但是目前这边同事是基于ElasticsearchRestTemplate跟NativeSearchQuery做的。 import lombok.extern.slf4j.Slf4j; import org.elasticsearch.common.lucene.search.function.CombineFunction; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.MatchAllQueryBuilder; import org.elasticsearch.index.query.MatchQueryBuilder; import org.elasticsearch.index.query.MultiMatchQueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.RangeQueryBuilder; import org.elasticsearch.index.query.TermsQueryBuilder; import org.elasticsearch.index.query.WildcardQueryBuilder; import org.elasticsearch.index.query.functionscore.FunctionScoreQueryBuilder; import org.elasticsearch.index.query.functionscore.ScoreFunctionBuilder; import org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; import org.elasticsearch.search.sort.SortBuilder; import org.elasticsearch.search.sort.SortBuilders; import org.elasticsearch.search.sort.SortOrder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate; import org.springframework.data.elasticsearch.core.SearchHit; import org.springframework.data.elasticsearch.core.SearchHits; import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates; import org.springframework.data.elasticsearch.core.query.NativeSearchQuery; import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.List; import java.util.Map;Slf4j RestController RequestMapping(/v/k/t/query) public class EsTestController {/*** 测试es各种查询方法**/AutowiredElasticsearchRestTemplate elasticsearchRestTemplate;//通配符查询PostMapping(/es/wildcard)public void wildcard() {//*匹配任意数量的字符包括零个字符。 *x*: 对x做前后N位做模糊查询,前后有多少值都可以查到(也可以左模糊或者右模糊)//?:用于匹配单个字符. user?a: user?a 匹配user1a,但不匹配user123a//^:必须以某个字符开头如^user*必须以user开头//$:必须以某个字符结尾如user$必须以user结尾BoolQueryBuilder boolQueryBuilder QueryBuilders.boolQuery();//wildcardQuery通配符查询WildcardQueryBuilder bsVersion QueryBuilders.wildcardQuery(bsVersion, *1*);WildcardQueryBuilder bsVersion2 QueryBuilders.wildcardQuery(type, *j*);boolQueryBuilder.must(bsVersion).should(bsVersion2);NativeSearchQuery dsl new NativeSearchQueryBuilder()}//高亮//默认情况下只能对查询字段高亮//加了.requireFieldMatch(false) 可以对非查询字段高亮具体看下文PostMapping(/es/highlight)public void highlight() {BoolQueryBuilder boolQueryBuilder QueryBuilders.boolQuery();//wildcardQuery通配符查询WildcardQueryBuilder bsVersion QueryBuilders.wildcardQuery(bsVersion, *1*);WildcardQueryBuilder bsVersion2 QueryBuilders.wildcardQuery(type, *j*);boolQueryBuilder.must(bsVersion).should(bsVersion2);NativeSearchQuery dsl new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withHighlightFields(//.requireFieldMatch(false) : 加了可以对非查询字段高亮new HighlightBuilder.Field(bsVersion).preTags(em).postTags(/em).requireFieldMatch(false),new HighlightBuilder.Field(provinceNameCn).preTags(em).postTags(/em).requireFieldMatch(false),new HighlightBuilder.Field(isp).preTags(em).postTags(/em).requireFieldMatch(false),new HighlightBuilder.Field(type).preTags(em).postTags(/em).requireFieldMatch(false),new HighlightBuilder.Field(agentId).preTags(em).postTags(/em).requireFieldMatch(false)).build();SearchHitsMap search elasticsearchRestTemplate.search(dsl, Map.class, IndexCoordinates.of(298_ops-web-js_1));log.info(总条数{}, search.getTotalHits());for (SearchHitMap searchHit : search.getSearchHits()) {// 高亮字段是个大MAP 高亮字段集合 {bsVersion[em115/em]} //K字段名 V高亮了的数据集合MapString, ListString highlightFields searchHit.getHighlightFields();System.out.println(获取高亮字段集合bsVersion highlightFields.get(bsVersion));System.out.println(获取高亮字段集合provinceNameCn highlightFields.get(provinceNameCn));System.out.println(获取高亮字段集合isp highlightFields.get(isp));System.out.println(获取高亮字段集合type highlightFields.get(type));System.out.println(获取高亮字段集合agentId highlightFields.get(agentId));ListString bsVersionResult highlightFields.get(bsVersion);for (String s : bsVersionResult) {System.out.println(bsVersion集合每一个值为 s);}// highlightFields.forEach((k, v) - { // //获取高亮字段k bsVersion v [em115/em] // System.out.println(获取高亮字段k k v v); // });}log.info(总条数{}, search.getTotalHits());System.out.println(search.getSearchHits().size() search.getSearchHits().size());}//排序PostMapping(/es/sort)public void sort() {MatchAllQueryBuilder matchAllQuery QueryBuilders.matchAllQuery();//备注这里用的是NativeSearchQueryBuilderxxxBuilder。最后一定要.build();不然条件用不了NativeSearchQuery dsl new NativeSearchQueryBuilder().withQuery(matchAllQuery)//备注应该是要keywordpaasword这一类才能排序。我用text类型排序报非法字段异常.withSorts(SortBuilders.fieldSort(appId).order(SortOrder.ASC)) //排序根据bsVersion升序排序.build();SearchHitsMap search elasticsearchRestTemplate.search(dsl, Map.class, IndexCoordinates.of(298_ops-web-js_1));log.info(总条数{}, search.getTotalHits());for (SearchHitMap searchHit : search.getSearchHits()) {System.out.println(单条文档的原数据 searchHit.getContent());System.out.println(单条文档的id searchHit.getId());System.out.println(单条文档的评分 searchHit.getScore());System.out.println(单条文档索引名表名 searchHit.getIndex());//298_ops-web-js_1就是你输入的索引库名}}//分页PostMapping(/es/page)public void page() {Integer page 1;Integer size 10;MatchAllQueryBuilder matchAllQuery QueryBuilders.matchAllQuery();NativeSearchQuery dsl new NativeSearchQuery(matchAllQuery);//分页Pageable pageable PageRequest.of((page - 1) * size, size);dsl.setPageable(pageable);SearchHitsMap search elasticsearchRestTemplate.search(dsl, Map.class, IndexCoordinates.of(298_ops-web-js_1));log.info(总条数{}, search.getTotalHits());// 获取当前页数log.info(当前页数{}, page);// 获取当前页的条数int currentSize search.getSearchHits().size();log.info(当前页条数{}, currentSize);//数据列表search.getSearchHits() for出每一条然后加到list中for (SearchHitMap searchHit : search.getSearchHits()) {System.out.println(单条文档的原数据 searchHit.getContent());System.out.println(单条文档的id searchHit.getId());System.out.println(单条文档的评分 searchHit.getScore());System.out.println(单条文档索引名表名 searchHit.getIndex());//298_ops-web-js_1就是你输入的索引库名}}//布尔查询PostMapping(/es/boolQueryBuilder)public void boolQueryBuilder() {BoolQueryBuilder boolQueryBuilder QueryBuilders.boolQuery();//must 必须满足且参与算分boolQueryBuilder.must(QueryBuilders.matchQuery(bsVersion, 114));//mustNot 必须不满足 appID 300-700之间不参与查询就是直接筛掉了boolQueryBuilder.mustNot(QueryBuilders.rangeQuery(appId).gte(300).lte(700));//filter 必须满足且不参与算分 // boolQueryBuilder.filter(QueryBuilders.termQuery(agentId, 298_ead348abbaf30f48));NativeSearchQuery dsl new NativeSearchQuery(boolQueryBuilder);SearchHitsMap search elasticsearchRestTemplate.search(dsl, Map.class, IndexCoordinates.of(298_ops-web-js_1));log.info(总条数{}, search.getTotalHits());for (SearchHitMap searchHit : search.getSearchHits()) {System.out.println(单条文档的原数据 searchHit.getContent());System.out.println(单条文档的id searchHit.getId());System.out.println(单条文档的评分 searchHit.getScore());System.out.println(单条文档索引名表名 searchHit.getIndex());//298_ops-web-js_1就是你输入的索引库名}}//算分函数查询PostMapping(/es/FunctionScoreQueryBuilder)public void FunctionScoreQueryBuilder() {FunctionScoreQueryBuilder functionScoreQueryBuilder QueryBuilders.functionScoreQuery(//原始查询QueryBuilders.matchAllQuery(),//算分数组new FunctionScoreQueryBuilder.FilterFunctionBuilder[]{//第一个元素new FunctionScoreQueryBuilder.FilterFunctionBuilder(//过滤器QueryBuilders.matchQuery(bsVersion, 114),//权重ScoreFunctionBuilders.weightFactorFunction(10)),//第二个元素new FunctionScoreQueryBuilder.FilterFunctionBuilder(//过滤器QueryBuilders.matchQuery(bsVersion, 115),//权重ScoreFunctionBuilders.weightFactorFunction(10))}).boostMode(CombineFunction.REPLACE);NativeSearchQuery dsl new NativeSearchQuery(functionScoreQueryBuilder);SearchHitsMap search elasticsearchRestTemplate.search(dsl, Map.class, IndexCoordinates.of(298_ops-web-js_1));log.info(总条数{}, search.getTotalHits());for (SearchHitMap searchHit : search.getSearchHits()) {System.out.println(单条文档的原数据 searchHit.getContent());System.out.println(单条文档的id searchHit.getId());System.out.println(单条文档的评分 searchHit.getScore());System.out.println(单条文档索引名表名 searchHit.getIndex());//298_ops-web-js_1就是你输入的索引库名}}//范围查询PostMapping(/es/rangeQuery)public void rangeQuery() {//范围查询 appId字段 0 200 的数据RangeQueryBuilder rangeQueryBuilder QueryBuilders.rangeQuery(appId).gte(0).lte(200);NativeSearchQuery dsl new NativeSearchQuery(rangeQueryBuilder);SearchHitsMap search elasticsearchRestTemplate.search(dsl, Map.class, IndexCoordinates.of(298_ops-web-js_1));log.info(总条数{}, search.getTotalHits());for (SearchHitMap searchHit : search.getSearchHits()) {System.out.println(单条文档的原数据 searchHit.getContent());System.out.println(单条文档的id searchHit.getId());System.out.println(单条文档的评分 searchHit.getScore());System.out.println(单条文档索引名表名 searchHit.getIndex());//298_ops-web-js_1就是你输入的索引库名}}//精确查询PostMapping(/es/termQuery)public void termQuery() {//根据isp字段 精确查询 内网IPTermsQueryBuilder termsQueryBuilder QueryBuilders.termsQuery(isp, 内网IP );NativeSearchQuery dsl new NativeSearchQuery(termsQueryBuilder);SearchHitsMap search elasticsearchRestTemplate.search(dsl, Map.class, IndexCoordinates.of(298_ops-web-js_1));log.info(总条数{}, search.getTotalHits());for (SearchHitMap searchHit : search.getSearchHits()) {System.out.println(单条文档的原数据 searchHit.getContent());System.out.println(单条文档的id searchHit.getId());System.out.println(单条文档的评分 searchHit.getScore());System.out.println(单条文档索引名表名 searchHit.getIndex());//298_ops-web-js_1就是你输入的索引库名}}//多字段查询PostMapping(/es/multiMatchQuery)public void multiMatchQuery() {//备注字段必须是text类型可以分词类型//查找keyword、数值、日期、boolean等会报错//如果放入精确类型的字段会报错MultiMatchQueryBuilder multiMatchQuery QueryBuilders.multiMatchQuery(114, bsVersion, type);//查询114根据bsVersion,typeNativeSearchQuery dsl new NativeSearchQuery(multiMatchQuery);SearchHitsMap search elasticsearchRestTemplate.search(dsl, Map.class, IndexCoordinates.of(298_ops-web-js_1));log.info(总条数{}, search.getTotalHits());for (SearchHitMap searchHit : search.getSearchHits()) {System.out.println(单条文档的原数据 searchHit.getContent());System.out.println(单条文档的id searchHit.getId());System.out.println(单条文档的评分 searchHit.getScore());System.out.println(单条文档索引名表名 searchHit.getIndex());//298_ops-web-js_1就是你输入的索引库名}}//单字段查询PostMapping(/es/matchQuery)public void matchQuery() {MatchQueryBuilder matchQuery QueryBuilders.matchQuery(bsVersion, 114);NativeSearchQuery dsl new NativeSearchQuery(matchQuery);SearchHitsMap search elasticsearchRestTemplate.search(dsl, Map.class, IndexCoordinates.of(298_ops-web-js_1));log.info(总条数{}, search.getTotalHits());for (SearchHitMap searchHit : search.getSearchHits()) {System.out.println(单条文档的原数据 searchHit.getContent());System.out.println(单条文档的id searchHit.getId());System.out.println(单条文档的评分 searchHit.getScore());System.out.println(单条文档索引名表名 searchHit.getIndex());//298_ops-web-js_1就是你输入的索引库名}}//查询所有PostMapping(/es/matchAllQuery)public void matchAllQuery() {MatchAllQueryBuilder matchAllQuery QueryBuilders.matchAllQuery();NativeSearchQuery dsl new NativeSearchQuery(matchAllQuery);SearchHitsMap search elasticsearchRestTemplate.search(dsl, Map.class, IndexCoordinates.of(298_ops-web-js_1));log.info(总条数{}, search.getTotalHits());log.info(查询原始对象{}, search.getSearchHits());log.info(分数值{}, search.getMaxScore());log.info(有无聚合{}, search.hasAggregations());log.info(返回搜索命中数量的关系例如精确值、估计值{}, search.getTotalHitsRelation());log.info(判断是否存在搜索命中结果{}, search.hasSearchHits());//原始结果的每一条数据for (SearchHitMap searchHit : search.getSearchHits()) {System.out.println(单条文档 searchHit);System.out.println(单条文档的原数据 searchHit.getContent());}}}————————————————————————————————————
http://www.zqtcl.cn/news/752219/

相关文章:

  • 外贸联系网站wordpress 优惠券 插件
  • 公司网站开发费用兴田德润官方网站深圳百度快照优化
  • 做网站需要备案么行业网站策划
  • 去年做啥网站能致富周口seo推广
  • 主体负责人电话修改 网站备案什么样算网站需要备案
  • 网站建站免费空间外贸网站建设与优化
  • 网站极简设计建立网站基本知识
  • 网站建设管理标准wordpress rss采集
  • 乐清网站建设费用装修房子的app软件哪个好
  • 专业网站搭建运营工业网站素材
  • 建网站要会什么wordpress电影下载站
  • 济南设计网站的公司西安模板网站建设
  • 网站搜索功能如何实现网络培训学习心得体会
  • 网站设计方案书ppt网站展示型推广
  • 中国建设注册管理中心网站首页大连地区建设网站
  • 广州致峰网站建设藁城网络推广
  • 怎么做免费个人网站wordpress dux 5.3
  • 手机触屏版网站网站功能介绍
  • 商场设计案例青岛百度快速排名优化
  • 制作网站要步骤湖北省建设厅网站上岗证查询
  • 网站建设制作公司都选万维科技制作网站需要注意什么
  • jsp小型网站开发wordpress微博插件
  • app充值网站开发怎么去做网站
  • 合肥建站网站模板word上下页纸张方向
  • 大学跳蚤市场网站建设哈尔滨网站建设
  • 网站开发合同中的知识产权条款怎么给公司建网站
  • 网站代维护wordpress 主题中心
  • 中铁广州建设有限公司网站临安做企业网站的公司
  • 国内可访问的海外网站和应用重庆好玩还是成都好玩
  • 定制开发小程序天津做网站优化的公司