Path Hierarchy Tokenizer(路径层次分词器)

path_hierarchy tokenizer 把分层的值看成是文件路径,用路径分隔符分割文本,输出树上的各个节点。

原文链接 : https://www.elastic.co/guide/en/elasticsearch/reference/5.3/analysis-pathhierarchy-tokenizer.html

译文链接 : http://www.apache.wiki/pages/viewpage.action?pageId=10028999

贡献者 : 陈益雷ApacheCNApache中文网

输出示例

  1. POST _analyze
  2. {
  3. "tokenizer": "path_hierarchy",
  4. "text": "/one/two/three"
  5. }

输出为:

  1. [ /one, /one/two, /one/two/three ]

配置

path_hierarchy tokenizer 有以下参数:

| delimiter | 路径分隔符。默认是 / 。 | | replacement | 路径分隔符的替换字符。默认是 delimiter. | | buffer_size | 一次读到词元缓冲区的字符数。默认是 1024 。 词元缓冲区以此大小增长,只到读完所有的文本。建议不要更改这项配置。 | | reverse | 若为 true ,以相反的顺序发射词元。默认是 false 。 | | skip | 忽视的原始词元的数量。默认是0。 |

配置示例

下面的例子中,我们配置 遇到 - 时分割 并替换为 / ,忽视前2个词元:

  1. PUT my_index
  2. {
  3. "settings": {
  4. "analysis": {
  5. "analyzer": {
  6. "my_analyzer": {
  7. "tokenizer": "my_tokenizer"
  8. }
  9. },
  10. "tokenizer": {
  11. "my_tokenizer": {
  12. "type": "path_hierarchy",
  13. "delimiter": "-",
  14. "replacement": "/",
  15. "skip": 2
  16. }
  17. }
  18. }
  19. }
  20. }
  21. POST my_index/_analyze
  22. {
  23. "analyzer": "my_analyzer",
  24. "text": "one-two-three-four-five"
  25. }

输出为:

  1. [ /three, /three/four, /three/four/five ]

若配置 reverse 为 true ,输出为:

  1. [ one/two/three/, two/three/, three/ ]