【Java】Solr || managed-schema详解

 1、core路径

${安装路径}\solr-8.8.2\server\solr

 2、managed-schema路径

${安装路径}\solr-8.8.2\server\solr\conf

 3、总体结构

<?xml version="1.0" encoding="UTF-8" ?>
<schema version="1.6">
	<field .../>  
	<dynamicField .../>
	<uniqueKey>id</uniqueKey>
	<copyField .../>
	<fieldType ...>
		<analyzer type="index">
			<tokenizer .../>
			<filter ... />
		</analyzer>
		<analyzer type="query">
			<tokenizer .../>
			<filter ... />
		</analyzer>
	</fieldType>
</schema>

4、详解

4.1、field

<field name="propName" type="plong" indexed="false" stored="false" required="false" multiValued="false" />

field: 域,即字段;没有配置域不能用,配置的域才能用

name:  名称,需唯一,只能由字母、数字或下划线字符组成,不能以数字开头。

type: 类型别名,对应fieldType.name,必填

indexed: 是否索引,选填,默认true

stored: 是否存储,,选填,默认true

required: 是否必须,选填,默认false

multiValued: 是否存储多个值,选填,默认false

 

4.2、dynamicField

<dynamicField name="*_i" type="pint" indexed="true" stored="true"/>

dynamicField: 动态字段

name: 字段名规则,只支持通配符*,且只有前缀和后缀两种方式

其他属性,类比field配置

4.3、uniqueKey

<uniqueKey>id</uniqueKey>

定义唯一主键key,可自定义

提示:

  1. 在创建索引时必须指定唯一约束;
  2. 这里的唯一主键是指业务主键,并不是Document的主键;
  3. 唯一主键字段不可以是保留字段、复制字段,且不能分词。

 4.4、copyField

<copyField source="age" dest="text" maxChars="256" />

 copyField: 复制字段,允许将一个或多个字段的值填充到一个字段中。

source: 复制源,字段名,支持field和dynamicField。

dest:  目标字段名

用途1: 将多个字段内容填充到一个字段,来进行搜索

用途2: 对同一个字段内容进行不同的分词过滤,创建一个新的可搜索字段

理解: 一个关键字,在两个域中搜索

 4.5、fieldType

<fieldType name="rank" class="solr.RankField"/>

filedType: 字段类型,即别名,与处理类关联

name: 类型名,对应filed.type。必填,名称仅包含字母、数字或下划线字符,不能以数字开头。

class: 用于存储和索引此类型数据的实现类的类名

 参考学习: 其他博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值