更改 Elasticsearch Path Hierarchy Tokenizer 分隔符
Change Elasticsearch Path Hierarchy Tokenizer delimiter
我在使用 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
我得到了所有的代币。
似乎完全忽略了分隔符设置。
你打错了,delimeter
应该读作 delimiter
。这可能是问题所在。
它与正斜杠一起工作的原因是因为在指定 none 的情况下正斜杠是默认分隔符,并且由于 delimeter
拼写错误,因此使用默认分隔符。
他们可能应该做的是因为参数未知而发出错误,但他们 just silently ignore it. You could probably file an issue.
我在使用 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
我得到了所有的代币。
似乎完全忽略了分隔符设置。
你打错了,delimeter
应该读作 delimiter
。这可能是问题所在。
它与正斜杠一起工作的原因是因为在指定 none 的情况下正斜杠是默认分隔符,并且由于 delimeter
拼写错误,因此使用默认分隔符。
他们可能应该做的是因为参数未知而发出错误,但他们 just silently ignore it. You could probably file an issue.