2015-12-21 37 views
1

我遇到了Path Hierarchy Tokenizer的一些問題。 我需要的是使用反斜槓作爲分隔符的路徑分層結構標記器。更改Elasticsearch路徑分層結構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 

和我所有的令牌。

似乎分隔符設置完全被忽略。

回答

1

你有一個錯字,delimeter應該是delimiter。這可能是問題。

它與正斜槓一起工作的原因是因爲正斜槓是缺省分隔符,因爲沒有指定任何值,並且由於delimeter錯誤地拼寫,所以使用默認分隔符代替。

他們應該做的可能是發出一個錯誤,因爲一個未知的參數,但他們just silently ignore it。你大概可以file an issue

+0

-___-謝謝你 – betto86

+0

我的榮幸,很高興幫助。 – Val