一、通过字段类型表查询managed-schema内字段类型名称
1.进入docker
root@iZj6ci281j2u2p0oedcvi1Z:~# docker exec -it --user=root blog-solr /bin/bash
root@005fd2d05533:/opt/solr-8.5.2# cd /var/solr/data/Ik_core/conf/
root@005fd2d05533:/var/solr/data/Ik_core/conf# vim managed-schema
2.问题所在
例如 在solr8中直接使用int类型他是没有的
<field name="blog_view_counr" type="int" indexed="true" stored="true" required="true" multiValued="false" />
那么我们该如何解决这个问题呢? 通过字段类型表搜索来看在sorl8中这个字段叫什么
// 修改 managed-schema
root@005fd2d05533:/var/solr/data/Ik_core/conf# vim managed-schema
// 打开文件后输入光标即会跳转到指定位置
:? IntPointField
// 这个即为sorl8中的int类型
<fieldType name="pint" class="solr.IntPointField" docValues="true"/>
// 将type修改为pint即可正常使用
<field name="blog_view_counr" type="pint" indexed="true" stored="true" required="true" multiValued="false" />
二、可用字段类型表
|BinaryField |二进制数据。 |
|BoolField|包含 true 或 false。第一个字符中的值:1,t或T被解释为true;第一个字符中的任何其他值都被解释为false。|
|CollationField|支持排序和范围查询的 Unicode 排序规则。ICUCollationField 是一个更好的选择,如果你可以使用 ICU4J。有关更多信息,请参阅 Unicode 归类部分。|
|CurrencyField| 已弃用。改用 CurrencyFieldType。|
|CurrencyFieldType|支持货币和汇率。有关更多信息,请参阅使用货币和汇率部分。|
|DateRangeField|支持索引日期范围,还包括时间点实例(单毫秒(single-millisecond )持续时间)。有关使用此字段类型的更多详细信息,请参阅使用日期部分。请考虑使用这种字段类型,即使它只是用于日期实例,特别是当查询通常在 UTC 年/月/日/小时等边界时。|
|DatePointField|日期字段。代表精确到毫秒的时间点,使用基于“维度点”的数据结构进行编码,可以非常有效地搜索特定值或值的范围。有关支持的语法的更多详细信息,请参阅使用日期部分。对于单值字段,必须使用 docValues = "true" 来启用排序。|
|DoublePointField|双字段(64 位 IEEE 浮点)。该类使用基于 “Dimensional Points” 的数据结构对double 值进行编码,从而可以非常有效地搜索特定的值或值的范围。对于单值字段,必须使用 docValues = "true" 来启用排序。|
|ExternalFileField|从磁盘上的文件中提取值。有关更多信息,请参阅使用外部文件和进程一节。|
|EnumField|已弃用。改用 EnumFieldType。
|EnumFieldType|允许定义枚举的一组值,这些值可能不易按字母或数字顺序(例如,严重性等级列表)排序。这个字段类型需要一个配置文件,它列出了字段值的正确顺序。有关更多信息,请参阅使用枚举字段一节。|FloatPointField|浮点字段(32 位 IEEE 浮点)。该类使用基于“维度点”的数据结构对浮点值进行编码,可以非常有效地搜索特定的值或值的范围。对于单值字段,必须使用 docValues = "true" 来启用排序。
|ICUCollationField|支持排序和范围查询的 Unicode 排序规则。有关更多信息,请参阅 Unicode 归类部分。
|IntPointField|整数字段(32位有符号整数)。该类使用基于“Dimensional Points”的数据结构对int 值进行编码,可以非常有效地搜索特定值或值的范围。对于单值字段,必须使用 docValues = "true" 来启用排序。
|LatLonPointSpatialField|纬度/经度坐标对;可能多值多点。通常用逗号指定为 “lat,lon” 顺序。有关更多信息,请参阅空间搜索部分。
|LatLonType|已弃用。请考虑使用 LatLonPointSpatialField 来代替。一个单值的纬度/经度坐标对。通常用逗号指定为 “lat,lon” 顺序。有关更多信息,请参阅空间搜索部分。
|LongPointField|长字段(64 位有符号整数)。该类使用基于 “Dimensional Points” 的数据结构对foo 值进行编码,从而可以非常有效地搜索特定值或值的范围。对于单值字段,必须使用 docValues = "true" 来启用排序。
|PointType|一个单值的 n 维点。它既用于排序不是经纬度的空间数据,也用于一些更罕见的用例。(注:这与基于 "Point" 的数值字段无关)。请参阅空间搜索以获取更多信息。
|PreAnalyzedField|提供一种发送到 Solr 序列化标记流的方法,可选地具有独立存储的字段值,并且在没有任何额外的文本处理的情况下存储和索引这些信息。PreAnalyzedField 的配置和用法在“使用外部文件和进程”一节中有介绍。
|RandomSortField|不包含值。对此字段类型进行排序的查询将以随机顺序返回结果。使用动态字段来使用此功能。
|SpatialRecursivePrefixTreeFieldType|(简称 RPT)接受纬度逗号经度字符串或 WKT 格式的其他形状。请参阅空间搜索以获取更多信息。
|StrField|字符串(UTF-8 编码的字符串或 Unicode)。字符串用于小型字段,不以任何方式标记或分析。他们有一个不到 32K 的硬限制。
|TextField|文本,通常是多个单词或标记。
|TrieDateField|已弃用。改用 DatePointField。
|TrieDoubleField|已弃用。改用 DoublePointField。
|TrieFloatField|已弃用。改用 FloatPointField。
|TrieIntField|已弃用。改用 IntPointField。
|TrieLongField|已弃用。改用 LongPointField。
|TrieField|已弃用。这个字段用一个 type 参数来定义要使用的 Trie * 字段的特定类;改为使用适当的“Point Field”类型。
|UUIDField|通用唯一标识符(UUID)。通过 NEW 值, Solr 将创建一个新的 UUID。注意:NEW 在使用 SolrCloud 时,配置一个默认值为 UUIDField 的实例对于大多数用户是不可取的(因为结果将是每个文档的每个副本将得到一个唯一的 UUID值。建议使用 UUIDUpdateProcessorFactory 在添加文档时生成 UUID 值。|