Welcome to mirror list, hosted at ThFree Co, Russian Federation.

advanced_search.md « search « user « doc - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 90d6a15901a883f951a7089ba2d1a7cdb4874092 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
---
stage: Data Stores
group: Global Search
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments"
type: reference
---

# GitLab Advanced Search **(PREMIUM)**

> Moved to GitLab Premium in 13.9.

Advanced Search uses Elasticsearch for faster, more advanced search across the entire
GitLab instance.

Use Advanced Search when searching in:

- Projects
- Issues
- Merge requests
- Milestones
- Users
- Epics (when searching in a group only)
- Code
- Comments
- Commits
- Wiki (except [group wikis](../project/wiki/group.md))

Advanced Search can be useful in various scenarios:

- **Faster searches:**
  Advanced Search is based on Elasticsearch, which is a purpose-built full
  text search engine that can be horizontally scaled so that it can provide
  search results in 1-2 seconds in most cases.
- **Code Maintenance:**
  Finding all the code that needs to be updated at once across an entire
  instance can save time spent maintaining code.
  This is especially helpful for organizations with more than 10 active projects.
  This can also help build confidence is code refactoring to identify unknown impacts.
- **Promote innersourcing:**
  Your company may consist of many different developer teams each of which has
  their own group where the various projects are hosted. Some of your applications
  may be connected to each other, so your developers need to instantly search
  throughout the GitLab instance and find the code they search for.

## Configuring Advanced Search

For self-managed GitLab instances, an administrator must
[configure Advanced Search](../../integration/advanced_search/elasticsearch.md).

On GitLab.com, Advanced Search is enabled.

## Advanced Search syntax

See the documentation on [Advanced Search syntax](global_search/advanced_search_syntax.md).

## Search by issue or merge request ID

You can search a specific issue or merge request by its ID with a special prefix.

- To search by issue ID, use prefix `#` followed by issue ID. For example, [#23456](https://gitlab.com/search?snippets=&scope=issues&repository_ref=&search=%2323456&group_id=9970&project_id=278964)
- To search by merge request ID, use prefix `!` followed by merge request ID. For example [!23456](https://gitlab.com/search?snippets=&scope=merge_requests&repository_ref=&search=%2123456&group_id=9970&project_id=278964)

## Global search scopes **(FREE SELF)**

> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68640) in GitLab 14.3.

To improve the performance of your instance's global search, you can limit
the scope of the search. To do so, you can exclude global search scopes by disabling
[`ops` feature flags](../../development/feature_flags/index.md#ops-type).

Global search has all its scopes **enabled** by default in GitLab SaaS and
self-managed instances. A GitLab administrator can disable the following `ops`
feature flags to limit the scope of your instance's global search and optimize
its performance:

| Scope | Feature flag | Description |
|--|--|--|
| Code | `global_search_code_tab` | When enabled, the global search includes code as part of the search. |
| Commits | `global_search_commits_tab` | When enabled, the global search includes commits as part of the search. |
| Issues | `global_search_issues_tab` | When enabled, the global search includes issues as part of the search. |
| Merge Requests | `global_search_merge_requests_tab` | When enabled, the global search includes merge requests as part of the search. |
| Users | `global_search_users_tab` | When enabled, the global search includes users as part of the search. |
| Wiki | `global_search_wiki_tab` | When enabled, the global search includes wiki as part of the search. [Group wikis](../project/wiki/group.md) are not included. |

## Global Search validation

To prevent abusive searches, such as searches that may result in a Distributed Denial of Service (DDoS), Global Search ignores, logs, and
doesn't return any results for searches considered abusive according to the following criteria:

- Searches with less than 2 characters.
- Searches with any term greater than 100 characters. URL search terms have a maximum of 200 characters.
- Searches with a stop word as the only term (for example, "the", "and", "if", etc.).
- Searches with a `group_id` or `project_id` parameter that is not completely numeric.
- Searches with a `repository_ref` or `project_ref` parameter that has special characters not allowed by [Git refname](https://git-scm.com/docs/git-check-ref-format).
- Searches with a `scope` that is unknown.

Searches that don't comply with the criteria described below aren't logged as abusive but are flagged with an error:

- Searches with more than 4096 characters.
- Searches with more than 64 terms.