CGB2005 1010 SpringCloud09 搜索条 solr开讲

上午
在这里插入图片描述
在这里插入图片描述
所以工作和简单模式是最常用的
在这里插入图片描述
在这里插入图片描述

solr专门做全文检索 查询 返回查询结果

不经过数据库 但是数据和数据库一致

solr
Solr是一个高性能,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。

lucene(底层)
Lucene是apache jakarta项目的一个子项目,是一个开放源代码的全文检索引擎开发工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。
在这里插入图片描述
在这里插入图片描述

lucene API 介绍 底层开发工具包

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
搜索出的类似作用 目前只有数字在这里插入图片描述
只有文档编号不行

需求 需要摘要信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
自我小实现
在这里插入图片描述
这里就完成了
在这里插入图片描述

查看索引 运行 luke

运行lucene 8.1.1中的luke应用程序,指定索引的存放目录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查询索引

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

package test;

import org.apache.lucene.analysis.cn.smart.SmartChineseAnalyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.*;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.FSDirectory;
import org.junit.Test;

import java.io.File;
import java.io.IOException;

public class Test1 {
    String[] a = {
            "3, 华为 - 华为电脑, 爆款",
            "4, 华为手机, 旗舰",
            "5, 联想 - Thinkpad, 商务本",
            "6, 联想手机, 自拍神器"
    };

    @Test
    public void  test() throws Exception {
        // 准备文件夹  d:/abc
        FSDirectory d = FSDirectory.open(new File("d:/abc").toPath());
        // 中文分词配置
        IndexWriterConfig conf = new IndexWriterConfig(new SmartChineseAnalyzer());
        // 索引的输出工具
        IndexWriter writer = new IndexWriter(d, conf);
        // 循环遍历四篇文档,输出索引
        for (String s : a) {
            // "3, 华为 - 华为电脑, 爆款" --> ["3",  "名称",  "卖点"]
            //                               0       1       2
            String[] arr = s.split("\\s*,\\s*");
            // 数据封装到 Document 对象
            Document doc = new Document();
            doc.add(new LongPoint("id", Long.parseLong(arr[0])));
            doc.add(new StoredField("id", Long.parseLong(arr[0])));
            doc.add(new TextField("title", arr[1], Field.Store.YES));
            doc.add(new TextField("sellPoint", arr[2], Field.Store.YES));
            writer.addDocument(doc);
        }

        writer.flush();
        writer.close();
    }


    @Test
    public void test2() throws Exception {
        // 文件夹
        FSDirectory d = FSDirectory.open(new File("d:/abc").toPath());
        // 读取索引的工具
        DirectoryReader reader = DirectoryReader.open(d);
        // 查询工具
        IndexSearcher searcher = new IndexSearcher(reader);
        // 封装查询关键词
        TermQuery query = new TermQuery(new Term("title", "华为"));
        // 用查询工具查询,得到查询结果:
        // 文档排行[{id:2, score:0.33},{id:1, score:0.31},{id:5, score:0.26}]
        TopDocs td = searcher.search(query, 20);
        for (ScoreDoc sd :td.scoreDocs) {
            int id = sd.doc;
            float score = sd.score;
            Document doc = searcher.doc(id);
            System.out.println(id);
            System.out.println(score);
            System.out.println(doc.get("title"));
            System.out.println(doc.get("sellPoint"));
            System.out.println("------------------------------------");
        }
    }


}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
自我实现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
成功

solr 开箱即用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
浏览器访问 solr 控制台
http://192.168.64.170:8983

打开成功
在这里插入图片描述
在这里插入图片描述

核心指的就是一份索引数据
在这里插入图片描述
在这里插入图片描述
配置
在这里插入图片描述
在这里插入图片描述

自我实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

核心是对相同数据的文档生成的索引数据(也可以对应到数据库的一张表)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下午

用中文分词器 ik在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重启成功

在这里插入图片描述

停止词配置

在这里插入图片描述
在这里插入图片描述
尝试
在这里插入图片描述
尝试停止是一个 待会去

在这里插入图片描述

从 mysql 导入商品数据
设置字段
title text_ik
sellPoint text_ik
price plong
barcode string
image string
cid plong
status pint
created pdate
updated pdate
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
root身份去登陆
在这里插入图片描述
在这里插入图片描述
自我实现
在这里插入图片描述
在这里插入图片描述
如上 跨网络连接 必须先授权

准备 mysql 数据库数据

用 sqlyog 执行 pd.sql
授予 root 用户 跨网络访问权限
注意: 此处设置的是远程登录的 root 用户,本机登录的 root 用户密码不变
在这里插入图片描述
在这里插入图片描述

配置数据导入工具

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
为什么本机是64.1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实现pd上传搜索功能在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接口及其接口实现类
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

controller控制层

在这里插入图片描述
页面实现
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值