我想在elasticsearch中的路径字段中提取所有直接子文件夹。
例如,我想要此路径的所有子文件夹:/ path / to / file
这些网址应与
匹配/path/to/file/subfolderA
/path/to/file/subfolder-b
/path/to/file/subfolder_c
这些网址不匹配
/path/to/file/subfolderA/folderc
/path/to/file/subfolder-b/folderd/folderE
我试过这个正则表达式查询,但它不起作用。带/的部分不起作用。但当我用字母替换de /时,查询起作用。我试图用\来逃避/但是它也没有用。
POST index_name/_search
{
"query": {
"regexp":{
"path_parent": "(/path/to/file/.*)&~(.*/.*)"
}
}
答案 0 :(得分:1)
您可以使用否定的字符类:
"path_parent": "/path/to/file/[^/]*"
^^^^^
由于ElasticSearch模式默认是锚定的,因此该模式将匹配以/path/to/file/
开头的所有路径,然后是除/
以外的0 +字符,后跟字符串结尾。