京东搜索--es+springboot+vue

该博客介绍了如何结合SpringBoot、Elasticsearch和Vue.js搭建京东搜索系统。从创建SpringBoot项目,添加相关依赖,到初始化Vue项目并引入Element UI和axios,再到前后端交互,实现数据的存取、高亮显示和分页功能。同时,详细讲解了如何在Elasticsearch中添加分词,并解决过程中遇到的问题。
摘要由CSDN通过智能技术生成

目录

1. 创建一个springboot项目​编辑

2. 添加依赖 

3. 创建vue项目

3.1 打开cmd输入命令

 3.2 创建vue项目

3.3 添加依赖和插件

3.3.1 添加element插件

 3.3.2 添加axios依赖 

4. 使用webStorm打开vue项目

 4.1 引入axios 

5. 前端代码

6. 后端代码

6.1. 运行es和kibana

 6.2 写一个工具类--用于获取京东的数据

  6.3 创建返回共同数据工具类

6.4 将获取到京东的数据,添加到es中

6.4.1 controller层

 6.4.2 service层

6.4.3 访问

 6.4.4 测试一下

6.5 查询数据从es中

6.5.1 controller

6.5.2 service

 6.5.3 访问

7.用前端访问

7.1.报错​编辑

7.2.解决问题

8. 添加高亮 

9. 添加分页

9.1 前端

9.2 后端

9.2.1 controller层

9.2.2 service

10. 添加分词

10.1 添加分词前先把自己的写的京东的索引给删除

10.2 在添加索引的时候设置分词

10.3 将我们下载的分词放入到plugis中

10.4 重启es

10.5 运行项目,添加数据


1. 创建一个springboot项目

2. 添加依赖 

  <!--转json-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.79</version>
        </dependency>
        <dependency>
            <groupId>repMaven.org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version> 1.10.2</version>
        </dependency>

3. 创建vue项目

3.1 打开cmd输入命令

 vue ui

 3.2 创建vue项目

3.3 添加依赖和插件

3.3.1 添加element插件

 3.3.2 添加axios依赖 

4. 使用webStorm打开vue项目

 4.1 引入axios 

5. 前端代码

 这个代码会报红,但是不影响我们运行

<template>
  <div class="page">
    <div id="app" class=" mallist tmall- page-not-market ">
      <!-- 头部搜索 -->
      <div id="header" class=" header-list-app">
        <div class="headerLayout">
          <div class="headerCon ">
            <div class="header-extra">
              <!--搜索-->
              <div id="mallSearch" class="mall-search">
                <form name="searchTop" class="mallSearch-form clearfix">
                  <fieldset>
                    <legend>天猫搜索</legend>
                    <div class="mallSearch-input clearfix">
                      <div class="s-combobox" id="s-combobox-685">
                        <div class="s-combobox-input-wrap">
                          <input v-model="keyword"  type="text" autocomplete="off" id="mq"
                                 class="s-combobox-input"  aria-haspopup="true">
                        </div>
                      </div>
                      <button type="submit" @click.prevent="searchKey" id="searchbtn">搜索</button>
                    </div>
                  </fieldset>
                </form>
                <ul class="relKeyTop">
                  <li><a>老闫说Java</a></li>
                  <li><a>老闫说前端</a></li>
                  <li><a>老闫说Linux</a></li>
                  <li><a>老闫说大数据</a></li>
                  <li><a>老闫聊理财</a></li>
                </ul>
              </div>
            </div>
          </div>
        </div>
      </div>
      <!-- 商品详情页面 -->
      <div id="content">
        <div class="main">
          <!-- 品牌分类 -->
          <form class="navAttrsForm">
            <div class="attrs j_NavAttrs" style="display:block">
              <div class="brandAttr j_nav_brand">
                <div class="j_Brand attr">
                  <div class="attrKey">
                    品牌
                  </div>
                  <div class="attrValues">
                    <ul class="av-collapse row-2">
                      <li><a href="#"> 老闫说 </a></li>
                      <li><a href="#"> Java </a></li>
                    </ul>
                  </div>
                </div>
              </div>
            </div>
          </form>
          <!-- 排序规则 -->
          <div class="filter clearfix">
            <a class="fSort fSort-cur">综合<i class="f-ico-arrow-d"></i></a>
            <a class="fSort">人气<i class="f-ico-arrow-d"></i></a>
            <a class="fSort">新品<i class="f-ico-arrow-d"></i></a>
            <a class="fSort">销量<i class="f-ico-arrow-d"></i></a>
            <a class="fSort">价格<i class="f-ico-triangle-mt"></i><i class="f-ico-triangle-mb"></i></a>
          </div>
          <!-- 商品详情 -->
          <div class="view grid-nosku" >
            <div class="product" v-for="item in results">
              <div class="product-iWrap">
                <!--商品封面-->
                <div class="productImg-wrap">
                  <a class="productImg">
                    <img :src="item.imgUrl">
                  </a>
                </div>
                <!--价格-->
                <p class="productPrice">
                  <em>{
  {item.price}}</em>
                </p>
                <!--标题-->
                <p class="productTitle">
                  <a v-html="item.title">  </a>
                </p>
                <!-- 店铺名 -->
                <div class="productShop">
                  <span>店铺: 老闫说Java </span>
                </div>
                <!-- 成交信息 -->
                <p class="productStatus">
                  <span>月成交<em>999笔</em></span>
                  <span>评价 <a>3</a></span>
                </p>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>
 
<script>
  export default {
    name: "jd",
    data(){
      return {
        keyword: '', // 搜索的关键字
        results:[] // 后端返回的结果
      }
    },
    methods:{
      searchKey(){
        this.axios.get('/product/search/'+this.keyword).then(response=>{
          console.log(response.data.data);
          this.results
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值