我遇到了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
我得到了所有的代币。
似乎完全忽略了分隔符设置。
答案 0 :(得分:1)
您有错字,delimeter
应该阅读delimiter
。这可能就是问题所在。
它与正斜杠一起工作的原因是因为正斜杠是默认分隔符,如果没有指定,并且由于delimeter
被错误地拼写,则使用默认分隔符。
他们应该做的是因为参数未知而发出错误,而是just silently ignore it。你可能file an issue。