全文检索工具elasticsearch:第四章:开发电商的搜索列表功能

这篇具有很好参考价值的文章主要介绍了全文检索工具elasticsearch:第四章:开发电商的搜索列表功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

// skuInfo转化成skuLsInfo

for (SkuInfo skuInfo : skuInfos) {

SkuLsInfo skuLsInfo = new SkuLsInfo();

BeanUtils.copyProperties(skuInfo,skuLsInfo);

// 将skuLsInfo导入到es中

Index index = new Index.Builder(skuLsInfo).index(“gmall”).type(“SkuLsInfo”).id(skuLsInfo.getId()).build();

jestClient.execute(index);

}

}

}

@Override

public List SkuListByCatalog3Id(String catalog3Id) {

SkuInfo skuInfo = new SkuInfo();

skuInfo.setCatalog3Id(catalog3Id);

List skuInfos = skuInfoMapper.select(skuInfo);

for (SkuInfo info : skuInfos) {

SkuAttrValue skuAttrValue = new SkuAttrValue();

skuAttrValue.setSkuId(info.getId());

List skuAttrValues = skuAttrValueMapper.select(skuAttrValue);

info.setSkuAttrValueList(skuAttrValues);

}

return skuInfos;

}

再次查看

GET /gmall/SkuLsInfo/_search

数据库中的数据就出来了

{

“took”: 5,

“timed_out”: false,

“_shards”: {

“total”: 5,

“successful”: 5,

“skipped”: 0,

“failed”: 0

},

“hits”: {

“total”: 4,

“max_score”: 1,

“hits”: [

{

“_index”: “gmall”,

“_type”: “SkuLsInfo”,

“_id”: “105”,

“_score”: 1,

“_source”: {

“id”: “105”,

“price”: 1000,

“skuName”: “360手机”,

“skuDesc”: “360N5,360N6”,

“catalog3Id”: “4”,

“skuDefaultImg”: “http://192.168.0.100/group1/M00/00/00/wKgAZFxF1V6AeGnrAAB0eitaW6M234.jpg”,

“hotScore”: 0,

“skuAttrValueList”: [

{

“id”: “770”,

“attrId”: “39”,

“valueId”: “90”,

“skuId”: “105”

},

{

“id”: “771”,

“attrId”: “40”,

“valueId”: “90”,

“skuId”: “105”

},

{

“id”: “772”,

“attrId”: “41”,

“valueId”: “90”,

“skuId”: “105”

}

]

}

},

{

“_index”: “gmall”,

“_type”: “SkuLsInfo”,

“_id”: “101”,

“_score”: 1,

“_source”: {

“id”: “101”,

“price”: 5000,

“skuName”: “三体的sku”,

“skuDesc”: “三体的sku描述”,

“catalog3Id”: “4”,

“skuDefaultImg”: “http://192.168.0.100/group1/M00/00/00/wKgAZFw_4VOAD-e4AACOjs59iN8474.jpg”,

“hotScore”: 0,

“skuAttrValueList”: [

{

“id”: “751”,

“attrId”: “39”,

“valueId”: “91”,

“skuId”: “101”

},

{

“id”: “752”,

“attrId”: “40”,

“valueId”: “91”,

“skuId”: “101”

}

]

}

},

{

“_index”: “gmall”,

“_type”: “SkuLsInfo”,

“_id”: “106”,

“_score”: 1,

“_source”: {

“id”: “106”,

“price”: 2000,

“skuName”: “华为手机”,

“skuDesc”: “华为荣耀”,

“catalog3Id”: “4”,

“skuDefaultImg”: “http://192.168.0.100/group1/M00/00/00/wKgAZFxF1WWAOA3hAADKNM6pL68983.jpg”,

“hotScore”: 0,

“skuAttrValueList”: [

{

“id”: “773”,

“attrId”: “39”,

“valueId”: “90”,

“skuId”: “106”

},

{

“id”: “774”,

“attrId”: “40”,

“valueId”: “90”,

“skuId”: “106”

},

{

“id”: “775”,

“attrId”: “41”,

“valueId”: “90”,

“skuId”: “106”

}

]

}

},

{

“_index”: “gmall”,

“_type”: “SkuLsInfo”,

“_id”: “102”,

“_score”: 1,

“_source”: {

“id”: “102”,

“price”: 55555,

“skuName”: “三体第二部的sku名称”,

“skuDesc”: “三体第耳部的sku描述”,

“catalog3Id”: “4”,

“skuDefaultImg”: “http://192.168.0.100/group1/M00/00/00/wKgAZFw_4VOAD-e4AACOjs59iN8474.jpg”,

“hotScore”: 0,

“skuAttrValueList”: [

{

“id”: “753”,

“attrId”: “39”,

“valueId”: “91”,

“skuId”: “102”

},

{

“id”: “754”,

“attrId”: “40”,

“valueId”: “91”,

“skuId”: “102”

}

]

}

}

]

}

}

第二种方式:

之前已经将数据库中的数据保存到es中了,就可以用这种

@Test

public void contextLoads() throws IOException {

// 查询

String dsl = getMyDsl();

System.out.print(dsl);

Search build = new Search.Builder(dsl).addIndex(“gmall0906”).addType(“SkuLsInfo”).build();

SearchResult execute = jestClient.execute(build);

List<SearchResult.Hit<SkuLsInfo, Void>> hits = execute.getHits(SkuLsInfo.class);

List skuLsInfos = new ArrayList<>();

for (SearchResult.Hit<SkuLsInfo, Void> hit : hits) {

SkuLsInfo source = hit.source;

skuLsInfos.add(source);

}

System.out.println(skuLsInfos.size());

}

public String getMyDsl() {

// 查询语句封装

SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();

// 联合查询

BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();

/* TermQueryBuilder termQueryBuilder = new TermQueryBuilder(null, null);

boolQueryBuilder.filter(termQueryBuilder);*/

//分词查询:按skuName中有0725查询

MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder(“skuName”, “华为”);

boolQueryBuilder.must(matchQueryBuilder);

searchSourceBuilder.query(boolQueryBuilder);

//高亮
HighlightBuilder highlightBuilder = new HighlightBuilder();
highlightBuilder.field(“skuName”);
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。全文检索工具elasticsearch:第四章:开发电商的搜索列表功能,程序员,全文检索,elasticsearch,大数据

全文检索工具elasticsearch:第四章:开发电商的搜索列表功能,程序员,全文检索,elasticsearch,大数据

全文检索工具elasticsearch:第四章:开发电商的搜索列表功能,程序员,全文检索,elasticsearch,大数据

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

全文检索工具elasticsearch:第四章:开发电商的搜索列表功能,程序员,全文检索,elasticsearch,大数据

总结

虽然面试套路众多,但对于技术面试来说,主要还是考察一个人的技术能力和沟通能力。不同类型的面试官根据自身的理解问的问题也不尽相同,没有规律可循。

全文检索工具elasticsearch:第四章:开发电商的搜索列表功能,程序员,全文检索,elasticsearch,大数据

全文检索工具elasticsearch:第四章:开发电商的搜索列表功能,程序员,全文检索,elasticsearch,大数据

上面提到的关于这些JAVA基础、三大框架、项目经验、并发编程、JVM及调优、网络、设计模式、spring+mybatis源码解读、Mysql调优、分布式监控、消息队列、分布式存储等等面试题笔记及资料

有些面试官喜欢问自己擅长的问题,比如在实际编程中遇到的或者他自己一直在琢磨的这方面的问题,还有些面试官,尤其是大厂的比如 BAT 的面试官喜欢问面试者认为自己擅长的,然后通过提问的方式深挖细节,刨根到底。
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
众多,但对于技术面试来说,主要还是考察一个人的技术能力和沟通能力。不同类型的面试官根据自身的理解问的问题也不尽相同,没有规律可循。

[外链图片转存中…(img-ujzKwfUG-1711887542789)]

[外链图片转存中…(img-aO5EHEMx-1711887542789)]

上面提到的关于这些JAVA基础、三大框架、项目经验、并发编程、JVM及调优、网络、设计模式、spring+mybatis源码解读、Mysql调优、分布式监控、消息队列、分布式存储等等面试题笔记及资料

有些面试官喜欢问自己擅长的问题,比如在实际编程中遇到的或者他自己一直在琢磨的这方面的问题,还有些面试官,尤其是大厂的比如 BAT 的面试官喜欢问面试者认为自己擅长的,然后通过提问的方式深挖细节,刨根到底。
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!文章来源地址https://www.toymoban.com/news/detail-844954.html

到了这里,关于全文检索工具elasticsearch:第四章:开发电商的搜索列表功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ElasticSearch-全文检索

    https://www.elastic.co/cn/what-is/elasticsearch 全文搜索属于最常见的需求,开源的Elasticsearch是目前全文搜索引擎的首选。 它可以快速地储存、搜索和分析海量数据。 维基百科、StackOverflow、Github都采用它。 Elastic的底层是开源库Lucene。但是,你没法直接用Lucene,必须自己写代码去调用

    2024年04月17日
    浏览(26)
  • elasticsearch全文检索

    传送门 best_fields 传送门 most_fields 当查询多字段包含相同文本以不同方式分词的时候此参数最有用, 传送门 cross_fields phrase和phrase_prefix 传送门 传送门

    2024年02月07日
    浏览(34)
  • ElasticSearch 实战:ElasticSearch文档全文检索

    Elasticsearch 实战:Elasticsearch 文档全文检索 全文检索是 Elasticsearch 的核心功能之一,它允许用户对文本内容进行高效的模糊搜索、词组匹配、同义词处理、停用词过滤等操作。以下是如何进行文档全文检索的详细步骤: **1. **全文匹配查询(Match Query) 最基础的全文检索查询是

    2024年04月11日
    浏览(34)
  • ES(Elasticsearch 全文检索)

    数据量大的时候 索引失效 =查询性能低 功能比较弱 对文档的内容进行分词,对词条创建索引,记录词条所在的文档信息根据词条查询到文档的id 从而查到文档 文档:每一条数据就是一条文档 词条:文档按照语义分成的词语 正向索引 根据文档的id创建索引 查询词条必须先找

    2024年02月05日
    浏览(40)
  • 全文检索-Elasticsearch-整合SpringBoot

    前面记录了 Elasticsearch 全文检索的入门篇和进阶检索。这次我们来讲下 Spring Boot 中如何整合 ES,以及如何在 Spring Cloud 微服务项目中使用 ES 来实现全文检索,来达到商品检索的功能。 检索服务单独作为一个服务,就称作 gulimall-search 模块。 点击 Next 勾选 Spring Web 依赖,点击

    2024年02月08日
    浏览(34)
  • ElasticSearch全文检索原理及过程

            ElasticSearch的搜索引擎中,每个 文档都有一个对应的文档 ID ,文档内容被表示为一系列的集合。例如文档 1 经过分词,提取了 20 个, 每个都会记录它在文档中出现的次数和出现位置 。那么,倒排索引就是 到文档   ID 的映射 ,每个关键

    2023年04月17日
    浏览(29)
  • 全文检索学习之ElasticSearch学习笔记

    在非关系型数据库中,数据是非结构化的,如果直接去查找效率极低,全文检索将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。索引就是从非结构化数据中提取出的然后重新组

    2023年04月11日
    浏览(35)
  • 7-Elasticsearch组合查询和全文检索

    Elasticsearch组合查询 组合查询–布尔查询 组合查询中的常用的查询方式:布尔查询。 它将多个查询条件组合在一起,并且将查询的结果和结果的评分组合在一起。 布尔查询是把多个子查询组合成一个布尔表达式,所有子查询之间逻辑关系是and,只有当一个文档满足布尔查询

    2024年02月04日
    浏览(30)
  • ElasticSearch:全文检索及倒排索引原理

    首先介绍一下结构化与非结构化数据: 结构化数据将数据具有的特征事先以结构化的形式定义好,数据有固定的格式或有限的长度。典型的结构化数据就是传统关系型数据库的表结构,数据特征直接体现在表结构的字段上,所以根据某一特征做数据检索很直接,速度也比较快

    2024年02月14日
    浏览(30)
  • 九.全文检索ElasticSearch经典入门-ElasticSearch映射修改

    这篇文章的内容是ElasticSearch映射修改,写这篇文章是有水友公司里面遇到了映射修改问题,我这里做了一个整理,希望对你有所帮助。 在ElasticSearch中一旦创建了映射想要进行修改是不被允许的。比如我这里有一个案例 上面创建了索引employee ,同时为其创建映射,指定了id和

    2024年02月05日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包