欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

电商项目(十七) -- 搜索商品

程序员文章站 2022-04-15 10:46:09
...

1. solr中配置业务字段

修改 solr 的 schema.xml 文件,在文件中添加如下内容:

<field name="item_title" type="text_ik" indexed="true" stored="true"/>
<field name="item_sell_point" type="text_ik" indexed="true" stored="true"/> 
<field name="item_price" type="long" indexed="true" stored="true"/> 
<field name="item_image" type="string" indexed="false" stored="true" /> 
<field name="item_category_name" type="string" indexed="true" stored="true" /> <field name="item_desc" type="text_ik" indexed="true" stored="false" /> 
<field name="item_keywo rds" type="text_ik" indexed="true" stored="false" multiValued="true"/> 
<copyField source="item_title" dest="item_keywords"/> 
<copyField source="item_sell_point" dest="item_keywords"/> 
<copyField source="item_category_name" dest="item_keywords"/> 
<copyField source="item_desc" dest="item_keywords"/>

2. 创建搜索服务frontent_search(处理搜索商品内容的)

添加依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>bz_parent</artifactId>
        <groupId>com.bjsxt</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>frontend_search</artifactId>

    <dependencies>
        <!--mapper-->
        <dependency>
            <groupId>com.bjsxt</groupId>
            <artifactId>common_mapper</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <!--utils-->
        <dependency>
            <groupId>com.bjsxt</groupId>
            <artifactId>common_utils</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <!--Spring Boot Web Starter-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--Spring Cloud Eureka Client Starter-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

        <!--Spring Boot Data Solr Starter-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-solr</artifactId>
        </dependency>
        <!--Spring Cloud Config Client Starter-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>

        <!--Spring Cloud AMQP: (RabbitMQ) Starter-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

创建启动类

电商项目(十七) -- 搜索商品

创建配置文件

电商项目(十七) -- 搜索商品

配置SolrTemplate

创建配置类:SolrConfig
电商项目(十七) -- 搜索商品

3. 在关系型数据库中查询数据

在配置文件中添加eureka的配置信息电商项目(十七) -- 搜索商品

编写SQL语句

电商项目(十七) -- 搜索商品

创建SortItem实体类

在pojo的模块中,创建SortItem类,实现序列化接口

电商项目(十七) -- 搜索商品

添加SortItemMapper接口类和SortItemMapper.xml

电商项目(十七) -- 搜索商品
电商项目(十七) -- 搜索商品

4. 在frontent_search添加数据导入接口

创建SolrController,新增方法:向solr索引库中导入数据,返回值:Result,方法的参数:无。
创建对应的业务层代码,实现方法:向solr索引库中导入数据的方法,先查询数据:返回值是List;将数据添加到索引库:先创建SoltInputDocument对象,设置solr配置文件中的属性,在写入索引库,提交数据即可完成。
电商项目(十七) -- 搜索商品

导入数据:
电商项目(十七) -- 搜索商品

5. 在frontent_search添加搜索接口

在工具类的模块中添加返回数据的实体类SolrDocument

电商项目(十七) -- 搜索商品

修改controller

在SolrController中新增方法:搜索数据,返回值是List,方法的参数:String q ,@RequestParam(defaultValue=“1”)Long page,@RequestParam(defaultVaue=“10”)Integer pageSize
电商项目(十七) -- 搜索商品

修改serviceImpl

电商项目(十七) -- 搜索商品

6. 添加搜索的测试数据

添加数据

将数据导入到solr

相关标签: 电商