06、全文检索 -- Solr -- Solr 全文检索之在图形界面管理 Core 的 Schema(演示对 普通字段、动态字段、拷贝字段 的添加和删除)

目录

  • Solr 全文检索之管理 Schema
    • 使用Web控制台管理Core的Schema
      • 3 种 字段解释:
        • Field:普通字段
        • Dynamic Field:动态字段
        • Copy Field:拷贝字段
      • 演示:添加 普通字段( Field )
      • 演示:添加 动态字段( Dynamic Field )
    • 删除或修改Field
    • 管理 Copy Field(添加和删除拷贝字段)
      • 1、添加 源field
      • 2、删除 源field
      • 3、删除拷贝字段
      • 4、从 0 添加和删除拷贝字段
        • 添加:
        • 删除:
      • 拷贝字段应用场景解释:

Solr 全文检索之管理 Schema


使用Web控制台管理Core的Schema

由于 Core 相当于传统 RDBMS 的一个表(类似关系型数据库的表)。

向 Core 中添加文档时,文档所包含的 Field 应该是 Core 所定义的 Field 的子集。

由于前面创建该 Core 时,以 sample_techproducts_configs 为配置模板的,而该配置模板默认已经定义了大量的 field。

(1)选中指定 Core,然后选择 “Schema” 标签页,进入 Schema 管理界面。

(2)通过该界面可添加 Field:

通过界面添加 Field,其实也是保存在 conf / managed-schema 文档中。



3 种 字段解释:

Field:普通字段

Field:普通 Field,就像普通数据表的列。

在这里插入图片描述


Dynamic Field:动态字段

Dynamic Field:动态Field。也就是带通配符的Field,例如名为 “*_f” 的Field,

它可以匹配 price_f、amount_f、discount_f 等各种以 _f 结尾的 Field。

由此可见,动态字段是个好东西:通过动态字段,可以让 Core 中有限的字段去匹配所添加文档的无数字段。

在这里插入图片描述


Copy Field:拷贝字段

Copy Field:Copy Field 意味着该 Field 的值是从其它 Field 复制过来的。

一个Copy Field 的值可来自多个普通 Field。

源1  ↘
源2  →    Copy Field(目标Field)
源3  ↗

Copy Field,意味着它的值是来自其他普通 Field。

这意味着:** Copy Field 就是 目标field;而其他字段就是源字段。**

如图: text 、manu_exact 、price_c 这些就叫 拷贝字段

在这里插入图片描述


如图,可以看到,其实 拷贝字段中的 目标字段 “text” ,其实它本身也就是一个普通的字段而已。
在这里插入图片描述



Field管理参考:https://solr.apache.org/guide/8_7/documents-fields-and-schema-design.html


在这里插入图片描述



演示:添加 普通字段( Field )


Field:普通 Field,就像普通数据表的列。


如图:

text_ckb 是一种字段的分词类型

在这里插入图片描述


创建的 Field 就存在这个配置文件里面

在这里插入图片描述


演示:添加 动态字段( Dynamic Field )

Dynamic Field:动态 Field。
也就是带通配符的 Field,例如名为 “*_f” 的Field,它可以匹配 price_f、amount_f、discount_f 等各种以 _f 结尾的 Field。
通过动态字段,可以让 Core 中有限的字段去匹配所添加文档的无数字段


如图:Schema 配置文件里面本身就存有这些动态字段。
动态字段用的比较多,如图:只要后缀能匹配上就可以查询到。
比如我添加了一个动态字段为 “_动漫”,那么就可以匹配到 “七龙珠_动漫”、“火影忍者_动漫”…等等

在这里插入图片描述



删除或修改Field


在Field管理界面上,选中指定 Field 或 Dynamic Field 后,就可以对该 Field 或 Dynamic Field 执行删除或修改操作。

在这里插入图片描述



管理 Copy Field(添加和删除拷贝字段)


在这里插入图片描述

Copy Field,意味着它的值是来自其他普通 Field。
这意味着: Copy Field 就是 目标field;而其他字段就是源字段。

源1  ↘
源2  →    Copy Field(目标Field)
源3  ↗

对Copy Field的管理,无非就两个:

添加 源field 和 删除 源 field


1、添加 源field

演示添加一个拷贝字段

1、 可以选择先添加一个普通的字段作为源字段

在这里插入图片描述


2、单击 “Add Copy Field” 按钮,如图:这样就成功的添加了一个拷贝字段

在这里插入图片描述



如果添加的 目标 copy Field 不存在,显示添加失败;
如图:在添加拷贝字段的时候,我这个“address_abc” 目标字段 是乱写的,就添加不了了,显示没有 “address_abc” 这个字段
在这里插入图片描述


如果添加的目标 copy Field 已经存在,它就表示只是为 copy field 新增一个源field。
就跟上面演示添加一样。


事实上,对于managed-schema文件而言,不管你是添加Copy Field,还是为已有的Cppy Field添加源字段,其最终都只是定义一个如下元素:

  <copyField source="源字段名" dest="目标Copy Field名"/>


2、删除 源field


演示删除拷贝字段中的某个源字段。

(1)选中目标 Copy Field(Web图形界面中,Copy Field 依然是被归类在 Fields 中)

(2)单击“源字段”列表右边的红色×即可删除指定的源字段。

在这里插入图片描述


3、删除拷贝字段

如图:上面只是删除拷贝字段的 源字段,如果要完整的删除一个拷贝字段的话,需要把Copy字段的所有源字段删除时,该Copy字段才会被删除。

我们需要把属于 text 拷贝字段 的所有源字段(author…keywords)都删除,这个text拷贝字段才会被删除。

在这里插入图片描述



4、从 0 添加和删除拷贝字段


添加:

上面是基于已有的目标字段来添加源字段
我这里就自己随便弄个源字段和目标字段来演示添加拷贝字段的过程。

1、我先添加两个源字段,字段a 和 字段b,
如图,在配置文件中,a和b就是两个普通的字段而已。

在这里插入图片描述


2、然后现在来添加一个拷贝字段:
此时把a字段作为源字段,b作为目标字段,点击添加

在这里插入图片描述


添加成功:

如图:此时的 b 这个目标字段,我们就也可以称它为 拷贝字段 了。

这样就相当于创建了一个拷贝字段了。

在这里插入图片描述


删除:

1、选择b这个拷贝字段,可以看到属于b这个拷贝字段的源字段只有a字段,现在我们把a源字段给删了。

在这里插入图片描述


2、如图:b这个拷贝字段 只拥有 a这个源字段,如果把a这个源字段删除了,那么b这个拷贝字段也就被删除了。

在这里插入图片描述


注意:

上面删的是a这个源字段,然后b这个拷贝字段因为没有源资源,所以也被删除了。
但是,a 字段 和 b 字段,它们作为普通字段,是还存在着的,这点不要混淆。

个人理解为:本来就只是存在 a 字段 和 b 字段,上面所谓删除拷贝字段的操作,删除的只是 a 字段 和 b 字段之间的拷贝关系而已。


在这里插入图片描述



拷贝字段应用场景解释:

如图:比如说“手机”这个关键字,存在很多字段里面,例如存在 “title”、“description”、“brand” 和 “category” 这些字段里面等。
如果我们全文检索的时候,通过 title 字段 查询 “手机”,只能查到 title 字段里面的“手机”关键字,但是却查不到 “description” 字段里面的“手机”关键字。
如果我们把 “title”、“description”、“brand” 和 “category” 这些字段都拷贝到 search_field 字段里面去,我们根据 search_field 字段来查 “手机” 这个关键字时,就能把存在 “title”、“description”、“brand” 和 “category” 这些字段里面的 “手机” 关键字都查询出来。


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/370961.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

web 技术栈有哪些?

前端技术栈&#xff1a; HTML&#xff08;超文本标记语言&#xff09;&#xff1a; 用于创建网页结构的标记语言&#xff0c;定义页面的内容和结构。 CSS&#xff08;层叠样式表&#xff09;&#xff1a; 用于设计和排版网页的样式表语言&#xff0c;负责页面的外观和样式。 …

Skywalking 应用笔记

概念 Skywalking是一款分布式的系统 性能监视工具&#xff0c;专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。SkyWalking是一款 观察性的分析平台和应用性能管理系统&#xff0c;提供了 分布式追踪、性能指标分析、应用服务依赖分析、可视化一体化等解决方…

ChatGPT之制作短视频

引言 今天带来了如何使用 ChatGPT和剪映来制作简单的短视频教程&#xff0c;在这其中 ChatGPT的作用主要是帮我们生成文案&#xff0c;剪映的功能就是根据文案自动生成视频&#xff0c;并配上一些图片、动画、字幕和解说。 ChatGPT生成文案 首先&#xff0c;我们需要使用提示…

ChatGPT之搭建API代理服务

简介 一行Docker命令部署的 OpenAI/GPT API代理&#xff0c;支持SSE流式返回、腾讯云函数 。 项目地址&#xff1a;https://github.com/easychen/openai-api-proxy 这个项目可以自行搭建 OpenAI API 代理服务器工具&#xff0c;该项目是代理的服务器端&#xff0c;不是客户端。…

如何把vue项目打包成桌面程序 electron-builder

引入 我们想要把我们写的vue项目,打包成桌面程序&#xff0c;我们需要使用electron-builder这个库 如何使用 首先添加打包工具 vue add electron-builder 选择最新版本 下载完毕 我们可以看到我们的package.json中多了几行 electron:build&#xff1a;打包我们的可执行程序 e…

大白话介绍循环神经网络

循环神经网络实质为递归式的网络&#xff0c;它在处理时序任务表现出优良的效果&#xff0c;毕竟递归本来就是一步套一步的向下进行&#xff0c;而自然语言处理任务中涉及的文本天然满足这种时序性&#xff0c;比如我们写字就是从左到右一步步来的鸭&#xff0c;刚接触深度学习…

ACPF UI 框架设计与基础实现

世态人情,比明月清风更饶有滋味;可作书读,可当戏看。书上的描摹,戏里的扮演,即使栩栩如生,究竟只是文艺作品;人情世态,都是天真自然的流露,往往超出情理之外,新奇得令人震惊,令人骇怪,给人以更深刻的效益,更奇妙的娱乐。惟有身处卑微的人,最有机缘看到世态人情的…

【HTML 基础】元数据 meta 标签

文章目录 1. 设置字符集2. 描述网页内容3. 设置关键词4. 网页重定向5. 移动端优化注意事项结语 在网页开发中&#xff0c;<meta> 标签是一种十分重要的 HTML 元数据标签。通过巧妙使用 <meta> 标签&#xff0c;我们能够设置各种元数据&#xff0c;从而影响网页在浏…

Java21 + SpringBoot3集成七牛云对象存储OSS,实现文件上传

文章目录 前言实现步骤引入maven依赖修改配置文件创建七牛云配置类创建文件操作服务类创建文件操作控制器前端实现运行效果 总结 前言 近日心血来潮想做一个开源项目&#xff0c;目标是做一款可以适配多端、功能完备的模板工程&#xff0c;包含后台管理系统和前台系统&#xf…

flutter开发实战-可扩展popup弹窗template模版样式

flutter开发实战-可扩展popup弹窗template模版样式 最近在看到一个flutter_beautiful_popup&#xff0c;可以美化弹窗窗口样式。该插件通过一个template模版的类BeautifulPopupTemplate作为抽象的base类。 一、基类BeautifulPopupTemplate 在BeautifulPopupTemplate中&…

python推荐算法在汽车用品商城营销系统 django+flask

本论文拟采用计算机技术设计并开发的汽车营销中的设计与实践 &#xff0c;主要是为用户提供服务。使得会员可以在系统上查看汽车商品、汽车快讯、还可以咨询客服&#xff0c;管理员对信息进行统一管理&#xff0c;与此同时可以筛选出符合的信息&#xff0c;给笔者提供更符合实际…

Linux conda环境安装

一、软件预准备 cpu操作系统飞腾S2500银河麒麟V10 SP1 1.1.软件下载 官方网站找自己系统需要的版本&#xff1a; https://repo.anaconda.com/miniconda/或者&#xff0c;我们可以复制下载的链接&#xff0c;直接在服务器上下载&#xff0c;如&#xff1a; wget -c https:/…

Java代码实现基数排序算法(附带源码)

基数排序是一种非比较型整数排序算法&#xff0c;其原理是将整数按位数切割成不同的数字&#xff0c;然后按每个位数分别比较。由于整数也可以表达字符串&#xff08;比如名字或日期&#xff09;和特定格式的浮点数&#xff0c;所以基数排序也不是只能使用于整数。 1. 基数排序…

从0开始搭建、上传npm包

从0开始搭建、上传npm包 1、上传一个简单获取水果价格的包创建 vite 项目在项目根目录 src 文件夹中创建 index.ts 文件&#xff0c;文件内容如下&#xff1a;在 main.ts 文件中导入、导出上面创建的方法创建 vite.config.ts 配置文件&#xff0c;文件内容如下配置 package.jso…

Windows下Nginx启动等命令

1. winr 输入cmd 打开控制台 进入nginx 所在目录 cd D:\tools\nginx-1.20.2\nginx-1.20.22.启动 //执行后屏幕闪烁一下 start nginx任务管理器可以看到 nginx.exe 进程 说明启动成功 3.停止 nginx.exe -s stop4.重新加载配置文件 nginx.exe -s reload5.查看版本 nginx -…

数据结构与算法:图论(邻接表板子+BFS宽搜、DFS深搜+拓扑排序板子+最小生成树MST的Prim算法、Kruskal算法、Dijkstra算法)

前言 图的难点主要在于图的表达形式非常多&#xff0c;即数据结构实现的形式很多。算法本身不是很难理解。所以建议精通一种数据结构后遇到相关题写个转换数据结构的接口&#xff0c;再套自己的板子。 邻接表板子&#xff08;图的定义和生成&#xff09; public class Graph…

微服务入门篇:Nacos注册中心(Nacos安装,快速入门,多级存储,负载均衡,环境隔离,配置管理,热更新,集群搭建,nginx反向代理)

目录 1.Nacos安装1.官网下载2.解压到本地3.启动nacos 2.Nacos快速入门1.在父工程中导入nacos依赖2.给子项目添加客户端依赖3.修改对应服务的配置文件4.启动服务&#xff0c;查看nacos发现情况 3.Nacos服务多级存储模型4.NacosRule负载均衡5. 服务实例的权重设置6.环境隔离&…

第二届 N1CTF Junior WEB方向 部分题解WP

zako 题目描述&#xff1a;很简单的rce哦 启动环境&#xff0c;源码直接给了。 execute.sh #!/bin/bashreject(){echo ${1}exit 1 }XXXCMD$1awk -v str"${XXXCMD}" \ BEGIN{deny";&$(){}[]!#$%^&*-";for(i 1; i < length(str); i){char su…

ffmpeg操作实战001:视频+音频文件融合

一、功能需求 把视频文件video.mp4 和音频文件audio.wav融合在一起&#xff0c;输出视频文件output.mp4 二、操作指令 ffmpeg -i video.mp4 -i audio.wav -c:v copy -map 0:v:0 -map 1:a:0 output.mp4 三、参数说明 ffmpeg: 这是用于执行FFmpeg命令行工具的命令。-i video…

分析 cusolverDnSgeqrf 的具体算法

1. 分析实例 源码&#xff1a; #include<time.h> #include<stdio.h> #include<stdlib.h> #include<string.h> #include<cuda_runtime.h> #include<cublas_v2.h> #include<cusolverDn.h> #define BILLION 1000000000L;void print_v…