Skip to content

Commit 482f2a9

Browse files
committed
Merge pull request #79 from toontong/patch-1
添加译者注,并修改部分翻译,更中文阅读习惯。
2 parents 6cad332 + afb853a commit 482f2a9

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

056_Sorting/88_String_sorting.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
## 多值字段字符串排序
22

3-
`analyzed`字符串字段同时也是多值字段,在这些字段上排序往往得不到你想要的值。
3+
> 译者注: `多值字段`是指同一个字段在ES索引中可以有多个含义,即可使用多个分析器(analyser)进行分词与排序,也可以不添加分析器,保留原值。
4+
5+
被分析器(analyser)处理过的字符称为`analyzed field`(译者注:即已被分词并排序的字段,所有写入ES中的字段默认圴会被analyzed), `analyzed`字符串字段同时也是多值字段,在这些字段上排序往往得不到你想要的值。
46
比如你分析一个字符 `"fine old art"`,它最终会得到三个值。例如我们想要按照第一个词首字母排序,
57
如果第一个单词相同的话,再用第二个词的首字母排序,以此类推,可惜 ElasticSearch 在进行排序时
68
是得不到这些信息的。
79

810
当然你可以使用 `min``max` 模式来排(默认使用的是 `min` 模式)但它是依据`art` 或者 `old`排序,
911
而不是我们所期望的那样。
1012

11-
为了使一个string字段可以进行排序,它必须只包含一个词:即完整的`not_analyzed`字符串。
12-
当然我们需要对字段进行全文本搜索的时候还必须使用 `analyzed`
13+
为了使一个string字段可以进行排序,它必须只包含一个词:即完整的`not_analyzed`字符串(译者注:未经分析器分词并排序的原字符串)
14+
当然我们需要对字段进行全文本搜索的时候还必须使用被 `analyzed` 标记的字段
1315

1416
`_source` 下相同的字符串上排序两次会造成不必要的资源浪费。
15-
而我们想要的是一个字段中同时包含这两种索引方式。
16-
现在我们介绍一个在所有核心字段类型上通用的参数 `fields`,这样我们就可以改变它的mapping:
17+
而我们想要的是同一个字段中同时包含这两种索引方式,我们只需要改变索引(index)的mapping即可。
18+
方法是在所有核心字段类型上,使用通用参数 `fields`对mapping进行修改。
19+
比如,我们原有mapping如下:
1720

1821
```Javascript
1922
"tweet": {

0 commit comments

Comments
 (0)