18767: Add API documentation about searching for file/directory names.
authorPeter Amstutz <peter.amstutz@curii.com>
Wed, 16 Mar 2022 21:12:56 +0000 (17:12 -0400)
committerPeter Amstutz <peter.amstutz@curii.com>
Wed, 16 Mar 2022 21:12:56 +0000 (17:12 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>

doc/api/methods/collections.html.textile.liquid

index 5ff8d529f8376ceb8b5372f8a94873e921c0961e..cb206936032d1c7888198ca8d91c3280bfa4ed7e 100644 (file)
@@ -55,6 +55,36 @@ Referenced blocks are protected from garbage collection in Keep.
 
 Data can be shared with other users via the Arvados permission model.
 
 
 Data can be shared with other users via the Arvados permission model.
 
+h3. Searching Collections for names of file or directories
+
+You can search collections for specific file or directory names (whole or part) using the following filter in a "list":../methods.html#index query.
+
+<pre>
+filters: [["file_names", "ilike", "%sample1234.fastq%"]]
+</pre>
+
+Note: @file_names@ is a hidden field used for indexing.  It is not returned by any API call.  On the client, to get the list of files, you will need to parse the @manifest_text@.
+
+As of this writing (Arvados 2.4), you can also search for directory paths, but _not_ complete file paths.
+
+In other words, this will work (when @dir3@ is a directory):
+
+<pre>
+filters: [["file_names", "ilike", "%dir1/dir2/dir3%"]]
+</pre>
+
+However, this will _not_ return the desired results (where @sample1234.fastq@ is a file):
+
+<pre>
+filters: [["file_names", "ilike", "%dir1/dir2/dir3/sample1234.fastq%"]]
+</pre>
+
+As a workaround, you can search for both the directory path and file name separately, and then filter on the client side.
+
+<pre>
+filters: [["file_names", "ilike", "%dir1/dir2/dir3%"], ["file_names", "ilike", "%sample1234.fastq%"]]
+</pre>
+
 h2. Methods
 
 See "Common resource methods":{{site.baseurl}}/api/methods.html for more information about @create@, @delete@, @get@, @list@, and @update@.
 h2. Methods
 
 See "Common resource methods":{{site.baseurl}}/api/methods.html for more information about @create@, @delete@, @get@, @list@, and @update@.