2017-08-23 33 views
1

我想提取elasticsearch中路徑字段中的所有直接子文件夾。提取Elasticsearch中路徑的所有子文件夾

例如,我想這條道路的所有子文件夾:/路徑/到/文件

這些URL應該符合

/path/to/file/subfolderA 
/path/to/file/subfolder-b 
/path/to/file/subfolder_c 

這些URL不應該匹配

/path/to/file/subfolderA/folderc 
/path/to/file/subfolder-b/folderd/folderE 

我試過這個正則表達式查詢,但它不工作。 /的部分不工作。但是,當我用一封信替換de時,查詢就起作用了。我試圖通過\來逃避/但它也無法工作。

POST index_name/_search 
{ 
    "query": { 
     "regexp":{ 
      "path_parent": "(/path/to/file/.*)&~(.*/.*)" 
     } 
} 

回答

1

您可以使用否定的字符類:

"path_parent": "/path/to/file/[^/]*" 
           ^^^^^ 

由於ElasticSearch圖案通過默認錨定此模式將匹配的所有路徑開始/path/to/file/然後將具有比0+其他/字符,隨後用的端串。

+1

它的工作!謝謝 –

相關問題