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

news2024/11/28 17:38:26

目录

  • 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.coloradmin.cn/o/1432615.html

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

相关文章

CSS写渐变边框线条

box-sizing: border-box; border-top: 1px solid; border-image: linear-gradient(to right, red, blue) 1;

建筑行业数字化:从设计到运维的全面革新

随着科技的快速发展&#xff0c;数字化技术在各行各业中的应用越来越广泛。建筑行业作为传统产业&#xff0c;也在积极拥抱数字化技术&#xff0c;以提高效率、降低成本并实现可持续发展。本文将主要探讨建筑行业数字化的几个关键领域&#xff0c;包括建筑设计数字化、施工管理…

CDH6.3.2 多 Spark 版本共存

一 部署Spark客户端 1.1 部署spark3客户端 tar -zxvf spark-3.3.1-bin-3.0.0-cdh6.3.2.tgz -C /opt/cloudera/parcels/CDH/lib cd /opt/cloudera/parcels/CDH/lib mv spark-3.3.1-bin-3.0.0-cdh6.3.2/ spark3将 CDH 集群的 spark-env.sh 复制到 /opt/cloudera/parcels/CDH/li…

《Python 网络爬虫简易速速上手小册》第3章:Python 网络爬虫的设计(2024 最新版)

文章目录 3.1 设计高效的爬取策略3.1.1 重点基础知识讲解3.1.2 重点案例&#xff1a;使用 Scrapy 框架进行并发爬取3.1.3 拓展案例 1&#xff1a;使用 Requests 和 gevent 进行异步请求3.1.4 拓展案例 2&#xff1a;利用缓存机制避免重复请求 3.2 管理爬虫的请求频率3.2.1 重点…

【AIGC核心技术剖析】AI生成音乐:MAGNeT一种直接操作多个音频令牌流的掩码生成序列建模方法

MAGNeT是一种直接操作多个音频令牌流的掩码生成序列建模方法。与先前的工作不同&#xff0c;MAGNeT由一个单阶段、非自回归的变压器组成。在训练期间&#xff0c;论文使用掩码调度器预测从掩码令牌中获得的跨度&#xff0c;而在推断期间&#xff0c;论文通过多个解码步骤逐渐构…

微信小程序 使用npm包

1. 微信小程序 使用npm包 1.1. npm初始化 如果你的小程序项目没有安装过npm包的话&#xff0c;你需要先初始化npm npm init1.2. 安装npm包 这里以vant-weapp(小程序UI组件库)为例&#xff1a; npm i vant-weapp -S --production1.3. npm包构建 1.3.1. 点击微信开发者工具右…

怎样理解Vue单向数据流

在前端开发中&#xff0c;数据流是一个非常重要的概念。Vue.js作为一种流行的前端框架&#xff0c;采用了单向数据流的架构&#xff0c;旨在简化开发过程并提高应用的可维护性。本文将探讨Vue单向数据流的含义以及它的使用方法。 什么是单向数据流&#xff1f; 在Vue中&#…

靶机实战bwapp亲测xxe漏洞攻击及自动化XXE注射工具分析利用

靶机实战bwapp亲测xxe漏洞攻击及自动化XXE注射工具分析利用。 1|0介绍 xxe漏洞主要针对webservice危险的引用的外部实体并且未对外部实体进行敏感字符的过滤,从而可以造成命令执行,目录遍历等.首先存在漏洞的web服务一定是存在xml传输数据的,可以在http头的content-type中查…

动态颗粒背景,适合VUE、HTML前端显示

动态颗粒背景&#xff0c;适合做背景使用&#xff0c;VUE、HTML前端显示直接看效果 废话不多说直接上代码&#xff1b; 一、html 代码部分 <template><div id"login"><div class"container"><div class"login-form"&g…

golang开发window环境搭建

1.本人开发环境&#xff1a;window10,idea2020.1.3 2.Go语言环境版本1.5.1 2.1. go语言插件 下载地址 csdn - 安全中心 2.2下载安装 3.idea配置go环境 4.创建go项目 、5.运行

第二届 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…

Unity引擎学习笔记之【混合动画操作】

混合动画Hybrid Animation Unity中的Blend Tree是一种动画混合技术&#xff0c;它允许开发者通过添加多个动画片段&#xff08;例如奔跑、行走、跳跃等&#xff09;来创建复杂的角色动画。Blend Tree允许在不同的状态下平滑地过渡并混合不同的动画。例如&#xff0c;在奔跑和行…

PyTorch 2.2 中文官方教程(九)

在生产环境中部署 PyTorch 模型 通过 Flask 在 Python 中部署 PyTorch 的 REST API 原文&#xff1a;pytorch.org/tutorials/intermediate/flask_rest_api_tutorial.html 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 注意 点击这里下载完整的示例代码 作者&#…

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

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

机器学习本科课程 实验3 决策树处理分类任务

实验3.1 决策树处理分类任务 使用sklearn.tree.DecisionTreeClassifier完成肿瘤分类&#xff08;breast-cancer&#xff09;计算最大深度为10时&#xff0c;十折交叉验证的精度(accuracy)&#xff0c;查准率(precision)&#xff0c;查全率(recall)&#xff0c;F1值绘制最大深度…

前端学习第4天

一、复合选择器 1.后代选择器 2.子代选择器 3.并集选择器 4.交集选择器 5.伪类选择器 1.伪类-超链接&#xff08;拓展&#xff09; 二、CSS特性 1.继承性 body放在style中 2.层叠性 3.优先级 属性 !important;&#xff08;最高优先级&#xff09; 1.优先级-叠加计算规则 2.em…

枚举(Java)

一、概念 枚举是一种特殊的类。 格式&#xff1a; 修饰符 enum 枚举类名{ 对象名称1&#xff0c;对象名称2&#xff0c;....; 其他成员... } 二、枚举类的特点 1.枚举类的第一行只能罗列一些名称&#xff0c;并且这些名称都是常量&#xff0c;每个常量记住一个枚举类对象…

Quartus IP 之mif与hex文件创建与使用

一、mif与hex概述 ROM IP的数据需要满足断电不丢失的要求&#xff0c;ROM IP数据的文件格式一般有三种文件格式&#xff1a;.mif、.hex、.coe&#xff0c;Xilinx与Intel Altera支持的ROM IP数据文件格式如下&#xff1a; Xilinx与Altera支持的ROM文件格式 Alterahex、mifAM&am…

基于微信小程序的书籍阅读系统,附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

ACPF UI 框架设计与基础实现

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