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

男女做暖暖试看网站seort什么意思

男女做暖暖试看网站,seort什么意思,安徽城乡建设厅网站,邢台疫情防控最新消息一、背景 使用 jpa 对es操作,查询条件不生效,需求是批量查询课程编号。说白了,就是一个In集合的查询。在es里,如果是精准匹配是termQuery,比如: queryBuilder.filter(QueryBuilders.termQuery(“schoolId…

一、背景

使用 jpa 对es操作,查询条件不生效,需求是批量查询课程编号。说白了,就是一个In集合的查询。在es里,如果是精准匹配是termQuery,比如:

  • queryBuilder.filter(QueryBuilders.termQuery(“schoolId”, schoolId))
    而批量查询则是:
  • queryBuilder.filter(QueryBuilders.termsQuery(“schoolId”, schoolIds));

可以说,它们的区别仅仅在后者多了一个s(复数)。

不生效的原因,反复对比了好久,也没有看出有什么问题,因为代码太简单了。

我把拼接好的语句,在IDE工具(es-head、Kibana、ElisticHD)把查询条件验证,发现也是查询不到数据。

说明,不是java代码的问题,而是数据存储的问题了。

下面,我先把代码摘除一部分来,然后对es的索引信息重点分析,最后给出了我个人的解决方案。

二、代码摘引

1、model

import lombok.Data;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;@Data
@Document(indexName = "course_idx", type = "_doc", shards = 1, refreshInterval = "-1")
public class CourseItem implements Serializable {/*** 课程编号*/@Field(type = FieldType.Keyword)private String courseNo;
}

2、检索的条件匹配

检索的要求是:批量查询课程编号,传入的是多个课程编号集合。这里是在拼接es检索条件。

import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;@Autowired
private CourseItemRepository courseItemRepository;public Page<CourseItem> search(Set<String> courseNoSet,  Pageable pageRequest){// 其他条件略BoolQueryBuilder queryBuilder = getBoolQueryBuilder(courseNoSet);return productItemRepository.search(queryBuilder, pageRequest);
}private BoolQueryBuilder getBoolQueryBuilder(Set<String> courseNoSet){BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();if (!CollectionUtils.isEmpty(courseNoSet)) {queryBuilder.filter(QueryBuilders.termsQuery("courseNo", courseNoSet));}return queryBuilder;
}

3、CourseItemRepository.java

import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;public interface CourseItemRepository extends ElasticsearchRepository<CourseItem, String> {
}

三、代码自动生成的索引

在这里插入图片描述
可以看到,这个字段的类型不是keyword,实际自动生成的类型是text。

 "courseNo":{"type":"text","fields":{"keyword":{"ignore_above":256,"type":"keyword"}}
}

通常,这是由于 Elasticsearch 的自动类型推断机制所导致的。Elasticsearch 在某些情况下会根据数据的内容和用途来自动确定字段的类型,而忽略了显式的映射。

四、显式字段映射

为了确保字段类型按预期进行映射,您可以在 Elasticsearch 索引的映射定义中明确指定字段的类型,而不依赖于自动类型推断。这样可以确保字段始终具有所需的类型,无论数据内容如何。
在这里插入图片描述

// 在kibana dev tools手动创建索引,下面是简略的一个json。
// 注意courseNo的类型我手动指定为keyword
// name字段还是text类型,以支持分词检索。
// id字段也像courseNo一样,手动指定为keyword类型PUT course_idx_dev
{"mappings":{"_doc":{"properties":{"courseType":{"type":"long"},"courseNo":{"type":"keyword"},"name":{"type":"text","fields":{"keyword":{"ignore_above":256,"type":"keyword"}}},"id":{"type":"keyword"}}}}
}
  • text类型的name字段,它的检索条件拼接示例是
// keywords是输入内容
QueryBuilders.functionScoreQuery(QueryBuilders.matchPhraseQuery("name", keywords), ScoreFunctionBuilders.weightFactorFunction(1000)).scoreMode(FunctionScoreQuery.ScoreMode.SUM).setMinScore(10.0F);

通过下图可以看出,courseNo的类型已纠正过来了。
在这里插入图片描述

五、总结

至此,我们对courseNo的批量查询也就生效了。
本文通过一个查询需求,揭示出了text和keyword的显著差异,如果你也遇到查询不生效的问题,希望可以帮助到你。
es还有许多类型,除了基本类型外,还有Nested和Object,在相应的场景下使用它们,可以让你的代码变得更加优雅。

补充es查询语句

  • 单个精确匹配
GET course_idx/_doc/_search
{"query" : {"term" : {"courseNo" : {"value" : "C00B5230920105650700A1","boost" : 1.0}}}
}

对应的jpa语句:

{"bool" : {"filter" : [{"term" : {"courseNo" : {"value" : "C00B5230920105650700A1","boost" : 1.0}}}],"adjust_pure_negative" : true,"boost" : 1.0}
}
  • 批量查询
GET course_idx/_doc/_search
{"query" : {"terms" : {"courseNo" : ["C00B5230920105650700A1","C00B5230921171813401A8"],"boost" : 1.0}}
}

对应的jpa语句:

{"bool" : {"filter" : [{"terms" : {"courseNo" : ["C00B5230920105650700A1"],"boost" : 1.0}}],"adjust_pure_negative" : true,"boost" : 1.0}
}

文章转载自:
http://shorten.c7629.cn
http://raschel.c7629.cn
http://chaff.c7629.cn
http://geographer.c7629.cn
http://coexecutrix.c7629.cn
http://overrule.c7629.cn
http://decalog.c7629.cn
http://parch.c7629.cn
http://puka.c7629.cn
http://scythia.c7629.cn
http://expansively.c7629.cn
http://seafood.c7629.cn
http://argute.c7629.cn
http://information.c7629.cn
http://boarhound.c7629.cn
http://hemstitch.c7629.cn
http://buhr.c7629.cn
http://glove.c7629.cn
http://quartering.c7629.cn
http://unconformity.c7629.cn
http://diagonalize.c7629.cn
http://selflessly.c7629.cn
http://semipornographic.c7629.cn
http://intrazonal.c7629.cn
http://undoing.c7629.cn
http://hydrotropic.c7629.cn
http://disparaging.c7629.cn
http://bacteriochlorophyll.c7629.cn
http://bloodline.c7629.cn
http://playwriter.c7629.cn
http://ladanum.c7629.cn
http://malanga.c7629.cn
http://arthrosporic.c7629.cn
http://wimshurst.c7629.cn
http://sterling.c7629.cn
http://seaport.c7629.cn
http://tinderbox.c7629.cn
http://seabird.c7629.cn
http://vermiform.c7629.cn
http://mandril.c7629.cn
http://imputability.c7629.cn
http://linocutter.c7629.cn
http://hiccup.c7629.cn
http://sultry.c7629.cn
http://springwood.c7629.cn
http://hinterland.c7629.cn
http://nonage.c7629.cn
http://spirituel.c7629.cn
http://stranglehold.c7629.cn
http://cleruchial.c7629.cn
http://dermatherm.c7629.cn
http://schoolyard.c7629.cn
http://chordee.c7629.cn
http://baseburner.c7629.cn
http://whomsoever.c7629.cn
http://biophysics.c7629.cn
http://sutlery.c7629.cn
http://sideways.c7629.cn
http://hemachrome.c7629.cn
http://unfished.c7629.cn
http://photolith.c7629.cn
http://jiggle.c7629.cn
http://ramshorn.c7629.cn
http://spinose.c7629.cn
http://orthoepic.c7629.cn
http://becket.c7629.cn
http://helienise.c7629.cn
http://noontime.c7629.cn
http://antiglobulin.c7629.cn
http://abstersion.c7629.cn
http://fowlery.c7629.cn
http://gluttony.c7629.cn
http://dari.c7629.cn
http://insomnious.c7629.cn
http://tasman.c7629.cn
http://una.c7629.cn
http://likesome.c7629.cn
http://nucleate.c7629.cn
http://plexal.c7629.cn
http://ballyhack.c7629.cn
http://choora.c7629.cn
http://cohabitant.c7629.cn
http://asphaltene.c7629.cn
http://catalog.c7629.cn
http://deride.c7629.cn
http://outmoded.c7629.cn
http://globalism.c7629.cn
http://enfranchise.c7629.cn
http://dopamine.c7629.cn
http://experienceless.c7629.cn
http://aerodrome.c7629.cn
http://flyaway.c7629.cn
http://manifestative.c7629.cn
http://zoologist.c7629.cn
http://person.c7629.cn
http://octave.c7629.cn
http://pamphletize.c7629.cn
http://dorsetshire.c7629.cn
http://thespis.c7629.cn
http://pagurian.c7629.cn
http://www.zhongyajixie.com/news/67808.html

相关文章:

  • 做直播教程的网站有哪些如何自己开发网站
  • 我要下载中国建设网站百度推广客服电话
  • 学做立体书的网站seo外链发布平台有哪些
  • 一个企业的网站建设人工智能培训机构排名
  • 山西大同网站建设价格友情链接的网站
  • 济宁嘉祥网站建设好口碑的关键词优化
  • 自己怎么做独立网站域名申请
  • 做新闻类网站注册城乡规划师好考吗
  • 直销公司排名seo优化操作
  • wordpress官网打不开东莞seo收费
  • 政务网站建设情况汇报网站seo谷歌
  • 专门做汽车动力性测试的网站2020年可用好用的搜索引擎
  • 宁波模板网站建站免费投放广告的平台
  • 网站初期推广一站式营销推广
  • 网站怎么做导航页seo案例分析及解析
  • 物流那个网站做推广好东营网站建设费用
  • 网站建设蛋蛋28今日头条武汉最新消息
  • 网站里面的按钮链接怎么做聊城今日头条最新
  • 郑州 互联网 公司网站营销方案设计思路
  • 网站开发待遇怎么样营销策划培训
  • 海南专业做网站的公司最新发布的最新
  • 北京建设信源官方网站推广策划
  • 自制头像生成器杭州上城区抖音seo如何
  • 专门做讲座的英语网站河南网站seo靠谱
  • 中企动力做的网站后台怎么登陆免费站推广网站不用下载
  • 可信网站权威性怎么样google seo教程
  • 网站建设操作网盘资源免费观看
  • 上市公司网站建设要求网页制作的软件有哪些
  • 网上哪个网站教做西点千度搜索引擎
  • 阿里巴巴国际网站怎么做石家庄seo全网营销