【问题标题】:Change Elasticsearch Path Hierarchy Tokenizer delimiter更改 Elasticsearch 路径层次结构标记器分隔符
【发布时间】:2023-03-23 05:06:01
【问题描述】:

我在使用 Path Hierarchy Tokenizer 时遇到了一些问题。 我需要的是使用反斜杠作为分隔符的路径层次标记器。

我要做的是索引和搜索 Windows 路径。

 "index": {
  "analysis": {
     "tokenizer": {
        "path": {
           "type": "path_hierarchy",
           "delimeter": "\\"
        }
     },
     "analyzer": {
        "analyzer_path": {
           "type": "custom",
           "tokenizer": "path",
           "filter": "lowercase"
        }
     }
  }

当我尝试获取自定义字符串的标记化元素时,我得到一个标记

GET /test/_analyze?analyzer=analyzer_path&text=C:\Users\Admin\AppData\Local\Temp\hello.exe


"tokens": [
  {
     "token": "c:\\users\\admin\\appdata\\local\\temp\\hello.exe",
     "start_offset": 0,
     "end_offset": 43,
     "type": "word",
     "position": 1
  }
]

使用正斜杠会得到正确的结果

GET /test/_analyze?analyzer=analyzer_path&text=C:/Users/Admin/AppData/Local/Temp/hello.exe

我得到了所有的令牌。

似乎完全忽略了分隔符设置。

【问题讨论】:

    标签: elasticsearch tokenize analyzer


    【解决方案1】:

    你有一个错字,delimeter 应该是delimiter。这可能就是问题所在。

    它与正斜杠一起使用的原因是因为正斜杠是默认分隔符,以防未指定任何分隔符,并且由于delimeter 拼写错误,因此使用默认分隔符。

    他们可能应该做的是因为未知参数而发出错误,而是他们just silently ignore it。你可能会file an issue

    【讨论】:

    • 很高兴,很高兴为您提供帮助。
    猜你喜欢
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    相关资源
    最近更新 更多