Files
SCM-Manager/docs/en/user/search/index.md
Rene Pfeuffer 2162b0bc41 Add hint for CamelCase word breaks to search documentation
Pushed-by: Rene Pfeuffer<rene.pfeuffer@cloudogu.com>
Co-authored-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
2024-10-10 13:36:14 +02:00

78 lines
4.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Search Syntax
partiallyActive: true
---
The search area includes all the necessary info to make use of the SCM-Managers search option (excluding the plugin functionality)
### Types of queries
There are two types of queries. The first is the simple query.
A simple query only contains terms and does not contain any of the operators listed below (for example 'AND').
Every term used in a simple query get implicitly extended with the \* operator at the end. This means that searching for 'Repo' will also match the term 'Repository'.
The second type of query is the expert query. Any query that contains at least one operator is considered as an expert query. This query type allows for complex searches.
But terms used in the expert query are not extended with the \* implicitly. A user has to add them explicitly to a term.
### Word Split
SCM-Manager is built for code, and in code one often uses "CamelCase" words. To make it easier to search for these words,
we split them into separate words. This means that searching for `SomeManager` will also match the term
`SomeRepositoryManager`. If you want to avoid this, you can simply type your words in small letters only. In the example
above, searching for `somemanager` will only match the term `SomeManager` but not `SomeRepositoryManager`.
### Modifiers
Note: You can not use wildcards as the first character of a search
Definition | Example
---------|----------
? - single character Wildcard | "Ultimate?Repo" finds e.g. `Ultimate-Repo`, `Ultimate Repo`, `Ultimate+Repo`
\* - multiple character Wildcard | "Ultimat*y" - finds e.g. `Ultimate Repository`, `Ultimate-Special-Repository`, `Ultimately`
### Ranges
Range Queries allow one to match documents whose field(s) values are between the lower and upper bound specified by the Range Query. Range Queries can be inclusive or exclusive of the upper and lower bounds. Sorting is done lexicographically.
Ranges are not reserved to numerical fields.
Definition | Example
---------|----------
\[ … TO … ] - inclusive range | "creationDate:\[1609459200000 TO 1612137600000]" finds e.G. repositories created between 2021-01-01 and 2021-02-01
{… TO …} - exclusive range - multiple character Wildcard | "name:{Aida TO Carmen}" finds e.G. repositories with names between Aida and Carmen, excluding these to values
### Boosting
Boosting allows you to control the relevance of a document by boosting its term.
Definition | Example
---------|----------
term^number | "ultimate^2 repository" makes the term `ultimate` more relevant
By default, the boost factor is 1. Although the boost factor must be positive, it can be less than 1 (e.g. 0.2)
By default Repository names are boosted by 1.5, namespace by 1.25.
### Boolean Operators
Note: Logical Operators must be entered in upper case (e.g. "AND").
Operator | Definition | Example
---------|------------|---------
AND| Both terms must be included | "Ultimate AND Repository" finds e.g. `Ultimate Repository`, `Ultimate Special Repository`
OR| At least one of the terms must be included | "Ultimate OR Repository" finds e.g. `Ultimate Repository`, `Ultimate User`, `Special Repository`
NOT| Following term may not be included, "!" may be used alternatively | "Ultimate NOT Repository" finds e.g. `Ultimate user`, excludes e.g. `Ultimate Repository`
\-| excludes following term from search | "Ultimate Repository -Special" finds e.g. `Ultimate Repository`, excludes e.g. `Ultimate Special Repository`
\+| Following term must be included | "Ultimate +Repository" finds e.g. `my Repository`, `Ultimate Repository`
### Grouping
Search supports using parentheses to group clauses to form sub queries. This can be very useful if you want to control the boolean logic for a query.
Definition | Example
-----------|-----------
() terms inside parentheses are grouped together | "(Ultimate OR my) AND Repository" finds e.g. `Ultimate Repository`, `my Repository`, excludes e.g. `Super Repository`. Either "Ultimate" or “My” must exist, “Repository” must always exist
### Phrases
A phrase is a group of terms in a certain order. If you want to search for certain phrases then you can use the " operator.
Please keep in mind, that words are split when they use "CamelCase" (like mentioned in the chapter "Word Split") even when they are enclosed with `"`.
Definition | Example
-----------|-----------
"" - terms inside the quotes are searched for as a phrase | "Ultimate Repository" finds `Ultimate Repository` but not `Repository Ultimate`, `Ultimate` or `Repository`