ICU 校对关键字字段
编辑ICU 校对关键字字段编辑
校对用于按特定语言的词序对文档进行排序。icu_collation_keyword
字段类型适用于所有索引,并将直接将术语编码为文档值字段中的字节和单个索引标记,就像标准的 关键字字段 一样。
默认使用 DUCET 校对,这是对语言中立排序的一种最佳尝试。
以下是设置用于按“电话簿”顺序对德语名称进行排序的字段的示例
PUT my-index-000001 { "mappings": { "properties": { "name": { "type": "text", "fields": { "sort": { "type": "icu_collation_keyword", "index": false, "language": "de", "country": "DE", "variant": "@collation=phonebook" } } } } } } GET /my-index-000001/_search { "query": { "match": { "name": "Fritz" } }, "sort": "name.sort" }
|
|
|
|
一个示例查询,它搜索 |
ICU 校对关键字字段的参数编辑
icu_collation_keyword
字段接受以下参数
|
该字段是否应该以列式方式存储在磁盘上,以便以后可以用于排序、聚合或脚本?接受 |
|
该字段是否应该可搜索?接受 |
|
接受一个字符串值,该值将替换任何显式的 |
长度超过 |
|
|
字段值是否应该存储并可以与 |
|
多字段允许以多种方式索引相同的字符串值以用于不同目的,例如一个字段用于搜索,一个多字段用于排序和聚合。 |
校对选项编辑
-
strength
- 强度属性决定了在比较期间被认为是显著差异的最低级别。可能的值为:
primary
、secondary
、tertiary
、quaternary
或identical
。有关每个值的更详细说明,请参阅 ICU 校对文档。默认为tertiary
,除非在校对中另有指定。 -
decomposition
- 可能的值:
no
(默认,但取决于校对)或canonical
。将此分解属性设置为canonical
允许校对器正确处理未规范化的文本,产生与文本已规范化相同的结果。如果设置了no
,则用户有责任确保在比较或获取校对键之前所有文本都已采用适当的形式。调整分解模式允许用户在更快和更完整的校对行为之间进行选择。由于世界上很多语言不需要文本规范化,因此大多数语言环境都将no
设置为默认分解模式。
以下选项仅供专家使用
-
alternate
- 可能的值:
shifted
或non-ignorable
。将强度quaternary
的备用处理设置为移位或不可忽略。这归结为忽略标点符号和空格。 -
case_level
- 可能的值:
true
或false
(默认)。是否需要区分大小写排序。当强度设置为primary
时,这将忽略重音差异。 -
case_first
- 可能的值:
lower
或upper
。当强度tertiary
不忽略大小写时,用于控制首先排序哪个大小写。默认值取决于校对。 -
numeric
- 可能的值:
true
或false
(默认)。数字是否按其数字表示排序。例如,值egg-9
排在值egg-21
之前。 -
variable_top
- 单个字符或缩写。控制
alternate
的变量。 -
hiragana_quaternary_mode
- 可能的值:
true
或false
。在quaternary
强度中区分片假名和平假名字符。