path_hierarchy tokenizer 把分层的值看成是文件路径,用路径分隔符分割文本,输出树上的各个节点。
POST _analyze
{
"tokenizer": "path_hierarchy",
"text": "/one/two/three"
}
输出为:
[ /one, /one/two, /one/two/three ]
path_hierarchy tokenizer 有以下参数:
| delimiter
| 路径分隔符。默认是 / 。 |
| replacement
| 路径分隔符的替换字符。默认是 delimiter
. |
| buffer_size
| 一次读到词元缓冲区的字符数。默认是 1024 。 词元缓冲区以此大小增长,只到读完所有的文本。建议不要更改这项配置。 |
| reverse
| 若为 true ,以相反的顺序发射词元。默认是 false 。 |
| skip
| 忽视的原始词元的数量。默认是0。 |
下面的例子中,我们配置 遇到 - 时分割 并替换为 / ,忽视前2个词元:
PUT my_index
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "my_tokenizer"
}
},
"tokenizer": {
"my_tokenizer": {
"type": "path_hierarchy",
"delimiter": "-",
"replacement": "/",
"skip": 2
}
}
}
}
}
POST my_index/_analyze
{
"analyzer": "my_analyzer",
"text": "one-two-three-four-five"
}
输出为:
[ /three, /three/four, /three/four/five ]
若配置 reverse 为 true ,输出为:
[ one/two/three/, two/three/, three/ ]