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” 这些字段里面的 “手机” 关键字都查询出来。


在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

webapi-根据id获取元素

1.目标 掌握document.getElementById() 根据id获取元素 在页面画出一个宽200 高200 粉色的盒子, 在控制台打印这个盒子 2.实现思路 画框 200px* 200px 粉色定义变量 保存根据id获取到这个div盒子打印变量 3.代码实现 // 定义变量 保存 根据id 获取到的div盒子var divEle …

您应该使用哪个库?jsoniter、easyjson 还是 go-json?为什么?

JSON是一种流行的数据交换格式,广泛应用于各种平台和语言。Golang当然不会错过对JSON的支持。并且通过自己的标准库,例如Kubernetes中API Service的REST API等接口,它可以轻松处理JSON。 虽然 Go 的库效果很好,但我们仍然可以在 Github 中寻找那些开源的 JSON 库,…

力扣:77. 组合

回溯解法思路&#xff1a; 1.先定义一个接收全部组合的集合&#xff0c;在定义一个单个组合的集合&#xff0c;再写一个回溯方法来进行回溯&#xff0c; 回溯终止条件&#xff0c;把单个集合中的组合加入到大集合去&#xff0c;同时选择下一个值进行递归组合&#xff0c;递归…

C++入门的基础

幸福比傲慢更容易蒙住人的眼睛。 ——大仲马 C入门 1、属于C的关键字1、1、C从何而来1、2、C关键字(C98) 2、命名空间2、1、命名空间的定义2、2、命名空间使用 3、C输入和输出4、缺省参数4、1、缺省参数概念4、2、缺省参数分类 5、函数重载5、1、函数重载概念 6、引用6、1、引用…

电脑/机顶盒/ps3/4/连接老电视(只有AV、S-Video接口)解决方案之HDMI转AV/S-Video转换器HAV

HDMI转AV/S-Video转换器功能 01、将HDMI高清信号经过视频处理转换成AV、S-VIDEO(PAL/NTSC)的视频信号输出 02、将HDMI数字音频&#xff0c;经过DAC数模芯片处理转成模拟立体声输出 03、采用先进的视频处理技术&#xff0c;对图像的亮度&#xff0c;对比度及色彩进行增强处理 04…

使用Docker本地部署Jupyter Notebook并结合内网穿透实现远程访问

文章目录 1. 选择与拉取镜像2. 创建容器3. 访问Jupyter工作台4. 远程访问Jupyter工作台4.1 内网穿透工具安装4.2 创建远程连接公网地址4.3 使用固定二级子域名地址远程访问 本文主要介绍如何在Ubuntu系统中使用Docker本地部署Jupyter Notebook&#xff0c;并结合cpolar内网穿透…

【Node系列】Node全局对象

文章目录 一、全局对象二、node介绍三、热门文章推荐 一、全局对象 global&#xff1a;全局对象&#xff0c;在所有模块中都可以访问。 案例代码&#xff1a; global.myVariable "Hello, World!"; console.log(myVariable); // 输出: Hello, World!process&#…

01-操作系统_名词_文件下载_反弹

操作系统_名词_文件下载_反弹 一、渗透测试1.1、POC、EXP、Payload与Shellcode1.2、后门1.3、木马1.4、反弹1.5、回显1.6、跳板1.7、黑白盒测试1.8、暴力破解1.9、社会工程学1.10、撞库1.11、ATT&CK 二、案例演示2.1、基础案例1&#xff1a;操作系统-用途&命令&权限…

Android学习之路(27) ProGuard,混淆,R8优化

前言 使用java编写的源代码编译后生成了对于的class文件&#xff0c;但是class文件是一个非常标准的文件&#xff0c;市面上很多软件都可以对class文件进行反编译&#xff0c;为了我们app的安全性&#xff0c;就需要使用到Android代码混淆这一功能。 针对 Java 的混淆&#x…

【Docker】Docker Registry(镜像仓库)

文章目录 一、什么是 Docker Registry二、镜像仓库分类三、镜像仓库工作机制四、常用的镜像仓库五、常用命令镜像仓库命令镜像命令(部分)容器命令(部分) 六、docker镜像仓库实战综合实战一&#xff1a;搭建一个 nginx 服务综合实战二&#xff1a;Docker hub上创建自己私有仓库综…

B站课程评分

Spring6 https://www.bilibili.com/video/BV1Ft4y1g7Fb/ 评价: 推荐一看 配套文档优秀, 老师口齿清晰, 条理不错. mybatis https://www.bilibili.com/video/BV1JP4y1Z73S/?spm_id_from333.337.search-card.all.click 评价: 推荐一看 配套文档优秀, 老师口齿清晰, 条理不错…

等变和不变 、向量神经元(vector neurons)是什么?

等变和不变 等变&#xff1a;如果输入是一个旋转后的椅子&#xff0c;那么输出也应该是一个旋转后的椅子 不变&#xff1a;如果输入是一个旋转后的椅子&#xff0c;那么输出应该是一个椅子&#xff0c;而不是一只狗。 向量神经元&#xff08;vector neurons&#xff09; 向量…

如何监控摄像头是否在线?有什么工具推荐

WGCLOUD监控系统 我们项目中&#xff0c;摄像头用的WGCLOUD监控系统来监控的&#xff0c;主要两种方式来监控 一种是监控摄像头的端口&#xff0c;使用WGCLOUD的端口监控模块 一种是PING摄像头的IP&#xff0c;使用WGCLOUD的ping监测模块 这两种方式比较简单&#xff0c;也…

1997-2022年中央对各省份一般公共预算转移支付数据

1997-2022年中央对各省份一般公共预算转移支付数据 1、时间&#xff1a;1997-2022年 2、范围&#xff1a;31省 3、指标&#xff1a;一般公共预算转移支付 4、来源&#xff1a;wind 财政部 5、指标解释&#xff1a;一般性转移支付又称体制性转移支付&#xff0c;是指上级政…

C++ 新特性 lamada表达式

本篇文章来介绍一下lamada表达式吧 lamada表达式相信大家已经很熟悉了 这里再总结一下 1.lamada表达式语法: [capture-list] (parameter-list) -> return-type { body } capture-list&#xff1a;捕获列表&#xff0c;用于指定在lambda函数体中可访问的外部变量。paramete…

【2024.2.4练习】国王游戏

题目描述 题目思路 涉及排列组合求最优解问题&#xff0c;数据大考虑是否满足某种贪心策略。 假设不除以右手的数字&#xff0c;那么获得金币数量最多的显然为最后一个人。左手数字最大的应排在最后一位。在右手有数字的情况下&#xff0c;不妨也尝试从最后一个人开始排。 假…

Element UI+Spring Boot进行CRUD的实例

ElementUI安装与使用指南 前端代码&#xff1a;点击查看learnelementuispringboot项目源码 后端代码&#xff1a;点击查看 LearnElementUiAndSpringBoot 一、前端配置 安装axios axios官网axios中文文档安装指令&#xff1a;npm install axios 二、后端配置 springboot3m…

BLIP2——采用Q-Former融合视觉语义与LLM能力的方法

BLIP2——采用Q-Former融合视觉语义与LLM能力的方法 FesianXu 20240202 at Baidu Search Team 前言 大规模语言模型&#xff08;Large Language Model,LLM&#xff09;是当前的当红炸子鸡&#xff0c;展现出了强大的逻辑推理&#xff0c;语义理解能力&#xff0c;而视觉作为人…

YOLOv8进阶 | 如何用yolov8训练自己的数据集(以安全帽佩戴检测举例)

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。YOLOv8是一种目标检测算法&#xff0c;它是YOLO&#xff08;You Only Look Once&#xff09;系列算法的最新版本。本节课就带领大家如何基于YOLOv8来训练自己的目标检测模型&#xff0c;本次作者就以安全帽佩戴检测为案例进…

华为机考入门python3--(7)牛客7-取近似值

分类&#xff1a;数字 知识点&#xff1a; str转float float(str) 向上取整 math.ceil(float_num) 向下取整 math.floor(float_num) 题目来自【牛客】 import math def round_to_int(float_num): # 如果小数点后的数值大于等于0.5&#xff0c;则向上取整&#xf…