京东搜索--es和springboot加前端vue

本文详细介绍了如何使用Spring Boot整合Elasticsearch,并创建Vue前端项目进行交互。步骤包括添加依赖,创建Vue项目,设置前端与后端的通信,将京东数据导入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=response.data.data;
        })
      }
    }

  }
</script>

<style>
  /*** uncss> filename: http://localhost:9090/css/global.css ***/body,button,fieldset,form,h1,input,legend,li,p,ul{margin:0;padding:0}body,button,input{font:12px/1.5 tahoma,arial,"\5b8b\4f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值