Add full text search
Currently there's no way to perform a full-text search.
It should be relatively straightforward to do this for a set of fields that commonly support this; such as title and description.
Proposals
Introduce a new operator
For example:
title contains "Roadmap improvements"
title =~ "Roadmap improvements"
Pros
- Easy
Cons
- Verbose and laborious if the user has to repeat the statement multiple times to search >1 field
title contains "Roadmap improvements" and description contains "Roadmap improvements"
- (Though until OR is supported this is unlikely anyway)
Add a new operator and support token lists
For example:
(title, description) like "Roadmap improvements"
Pros
Cons
in
operator**
Overload the For example:
"Roadmap improvements" in (title, description)
Pros
- Supports multiple fields out of the box
- Concise
Cons
- Flips the usual
attribute operator value
pattern, adding complexity to the language. - Requires a parser update, which is risky and difficult.
Support multiple attributes (with sane defaults)
For example:
search = "Roadmap Improvements" and searchIn = (title, description)
Pros
- Closest to most API implementations
Cons
- First token with two words
- More verbose and complex. Requires more knowledge on the part of the user.
Add a new function
For example:
search = "Roadmap Improvements"
search = searchIn("Roadmap Improvements", (title, description))
Pros
- Relatively concise
- Complexity increases with requirements for more control
- Components already exist (statement parsing,
=
operator, functions)
Cons
- Requires completing gitlab-query-language#34 and/or expanding values within functions
Requirements
- Implement support for escaped strings also, as titles and descriptions are likely to include quotation marks that may be interpreted as string terminators.
Edited by John Hope