X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/8078724be30f3df89eca3252921a2d1b8d14bea3..9f5256256f4b29188aa441f2e506297d27e200ce:/apps/workbench/app/assets/javascripts/to_tsquery.js diff --git a/apps/workbench/app/assets/javascripts/to_tsquery.js b/apps/workbench/app/assets/javascripts/to_tsquery.js index ab584d4be6..dbb17f3f73 100644 --- a/apps/workbench/app/assets/javascripts/to_tsquery.js +++ b/apps/workbench/app/assets/javascripts/to_tsquery.js @@ -10,15 +10,37 @@ // Examples: // // "foo" => "foo:*" -// "foo/bar" => "foo:*&bar:*" +// "foo_bar" => "foo:*&bar:*" +// "foo.bar" => "foo.bar:*" // "." is a word char in FT queries +// "foo/b-r" => "foo/b-r:*" // "/" and "-", too // "foo|bar" => "foo:*&bar:*" // " oo|ba " => "oo:*&ba:*" -// "// " => null +// "__ " => null // "" => null // null => null window.to_tsquery = function(q) { - q = (q || '').replace(/\W+/g, ' ').trim().replace(/ /g, ':*&') + q = (q || '').replace(/[^-\w\.\/]+/g, ' ').trim().replace(/ /g, ':*&') if (q == '') return null return q + ':*' } + +// to_tsquery_filters() converts a user-entered search query to a list of +// filters using the newly added (as for arvados 1.5) trigram indexes. +// +// Examples: +// +// "foo" => [["any", "ilike", "%foo%"]] +// "foo.bar" => [["any", "ilike", "%foo.bar%"]] +// "foo bar" => [["any", "ilike", "%foo%"], ["any", "ilike", "%bar%"]] +// "foo|bar" => [["any", "ilike", "%foo%"], ["any", "ilike", "%bar%"]] +// "" => [] +// null => [] +window.to_tsquery_filters = function(q) { + q = (q || '').replace(/[^-\w\.\/]+/g, ' ').trim() + if (q == '') + return [] + return q.split(" ").map(function(term) { + return ["any", "ilike", "%"+term+"%"] + }) +} \ No newline at end of file