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.hqwc.cn/news/453133.html

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

相关文章

代码随想录算法训练营第三十五天|343. 整数拆分 , 96.不同的二叉搜索树

343. 整数拆分 代码随想录 视频讲解&#xff1a;动态规划&#xff0c;本题关键在于理解递推公式&#xff01;| LeetCode&#xff1a;343. 整数拆分_哔哩哔哩_bilibili class Solution {public int integerBreak(int n) {// 1.确定dp数组&#xff08;dp table&#xff09;以及下…

电脑文件误删除怎么办?8个恢复软件解决电脑磁盘数据可能的误删

您是否刚刚发现您的电脑磁盘数据丢失了&#xff1f;不要绝望&#xff01;无论分区是否损坏、意外格式化或配置错误&#xff0c;存储在其上的文件都不一定会丢失到数字深渊。 我们已经卷起袖子&#xff0c;深入研究电脑分区恢复软件的广阔领域&#xff0c;为您带来一系列最有效…

浅压缩、深压缩、双引擎、计算机屏幕编码……何去何从?

专业视听领域尤其显示控制和坐席控制领域&#xff0c;最近几年最激动人心的技术&#xff0c;莫过于分布式了。 分布式从推出之日就备受关注&#xff1a;担心稳定性的&#xff0c;质疑同步性能的&#xff0c;怀疑画面质量的…… 诚然&#xff0c;我们在此前见多了带着马赛克的…

Redis核心技术与实战【学习笔记】 - 20.Redis原子操作及并发访问

概述 使用 Redis 时&#xff0c;不可避免地会遇到并发访问的问题&#xff0c;比如说如果多个用户同时下单&#xff0c;就会对缓存在 Redis 中的商品库存并发更新。一旦有了并发写操作&#xff0c;数据就会被修改&#xff0c;如果我们没有对并发写请求做好控制&#xff0c;就可…

Java on Azure Tooling 2024年1月更新|Azure Key Vault 支持、示例项目创建支持及更多

作者&#xff1a;Jialuo Gan - Program Manager, Developer Division At Microsoft 排版&#xff1a;Alan Wang 大家好&#xff0c;欢迎来到 2024 年 Java on Azure 工具的首次更新。在本次更新中&#xff0c;我们将介绍对于 Azure Key Vault 支持、基于 Azure 示例项目的创建支…

Kafka系列(二)将消息数据写入Kafka系统--生产者【异步发送、同步发送、单线程发送、多线程发送、配置生产者属性、自定义序列化、自定义主题分区】

Kafka系列 发送消息到 Kafka 主题了解异步模式了解同步模式线程发送消息的步骤生产者用单线程发送消息生产者用多线程发送消息 配置生产者属性保存对象的各个属性一序列化序列化一个对象序列化对象的存储格式自己实现 序列化的步骤1. 创建序列化对象2. 编写序列化工具类3. 编写…

[技术杂谈]如何下载vscode历史版本

网站模板&#xff1a; https://code.visualstudio.com/updates/v1_85 如果你想下载1.84系列可以访问https://code.visualstudio.com/updates/v1_84​​​​​​ 然后看到&#xff1a; 选择对应版本下载即可&#xff0c;我是windows x64系统选择x64即可开始下载

Element UI+Spring Boot进行CRUD的实例

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

C#验证字符串的长度,用正则表达式 vs 字符数组长度或字符串的长度

目录 一、使用的方法 1.使用正则表达式 2.通过计算字符串的长度验证 二、实例 1.源码 2.生成效果 一、使用的方法 1.使用正则表达式 使用正则表达式可以判断和限制用户输入的字符串长度。 比如验证用户密码不得少于8为&#xff0c;匹配的正则表达式"^.{8,}$"…

电脑上常见的绘图软件有哪些?

现在在电脑上绘图很流行&#xff0c;不仅可以随时更改&#xff0c;还可以提高绘图效率&#xff0c;绘图软件中有很多工具。市场上的计算机绘图软件种类繁多。包括艺术设计、工业绘图和3D绘图。那么每个绘图软件都有自己的特点。那么&#xff0c;哪个更适合计算机绘画软件呢&…

极速上手:使用Jmeter轻松实现N种参数化

参数化的方式&#xff1a; 一、使用用户自定义变量 一种方式&#xff1a;直接在测试计划中添加用户自定义变量 另外一种方式&#xff1a;配置元件——用户自定义变量 示例&#xff1a;用户自定义变量&#xff0c;登录手机号码 在接口请求的时候&#xff0c;进行引用 请求之后&…

PyTorch 2.2 中文官方教程(十一)

使用 PyTorch C 前端 原文&#xff1a;pytorch.org/tutorials/advanced/cpp_frontend.html 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 PyTorch C 前端是 PyTorch 机器学习框架的纯 C 接口。虽然 PyTorch 的主要接口自然是 Python&#xff0c;但这个 Python API 坐…