2017-08-23 11 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

これは機能しています!ありがとう –

関連する問題