Commit a8c5d692 authored by charlie ablett's avatar charlie ablett

Merge branch 'support-indexing-large-filenames-only' into 'master'

Support displaying indexed filenames for large files

See merge request gitlab-org/gitlab!66864
parents 77b6f6dc 73a3bc83
...@@ -7,5 +7,12 @@ ...@@ -7,5 +7,12 @@
= search_blob_title(project, path) = search_blob_title(project, path)
= copy_file_path_button(path) = copy_file_path_button(path)
- if blob.data - if blob.data
.file-content.code.term{ data: { qa_selector: 'file_text_content' } } - if blob.data.size > 0
= render 'shared/file_highlight', blob: blob, first_line_number: blob.startline, blob_link: blob_link, highlight_line: blob.highlight_line .file-content.code.term{ data: { qa_selector: 'file_text_content' } }
= render 'shared/file_highlight', blob: blob, first_line_number: blob.startline, blob_link: blob_link, highlight_line: blob.highlight_line
- else
.file-content.code
.nothing-here-block
.gl-text-gray-600.gl-font-sm
- max_file_size_indexed = Gitlab::CurrentSettings.elasticsearch_indexed_file_size_limit_kb.kilobytes
= _('The file could not be displayed because it is empty or larger than the maximum file size indexed (%{size}).') % { size: number_to_human_size(max_file_size_indexed) }
...@@ -626,8 +626,8 @@ Reports that go over the 20 MB limit won't be loaded. Affected reports: ...@@ -626,8 +626,8 @@ Reports that go over the 20 MB limit won't be loaded. Affected reports:
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/8638) in GitLab 13.3. > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/8638) in GitLab 13.3.
You can set a limit on the content of repository files that are indexed in You can set a limit on the content of repository files that are indexed in
Elasticsearch. Any files larger than this limit is neither indexed Elasticsearch. Any files larger than this limit only index the file name.
nor searchable. The file content is neither indexed nor searchable.
Setting a limit helps reduce the memory usage of the indexing processes and Setting a limit helps reduce the memory usage of the indexing processes and
the overall index size. This value defaults to `1024 KiB` (1 MiB) as any the overall index size. This value defaults to `1024 KiB` (1 MiB) as any
......
...@@ -109,7 +109,7 @@ ...@@ -109,7 +109,7 @@
= f.label :elasticsearch_indexed_file_size_limit_kb, _('Maximum file size indexed (KiB)'), class: 'label-bold' = f.label :elasticsearch_indexed_file_size_limit_kb, _('Maximum file size indexed (KiB)'), class: 'label-bold'
= f.number_field :elasticsearch_indexed_file_size_limit_kb, value: @application_setting.elasticsearch_indexed_file_size_limit_kb, class: 'form-control gl-form-input' = f.number_field :elasticsearch_indexed_file_size_limit_kb, value: @application_setting.elasticsearch_indexed_file_size_limit_kb, class: 'form-control gl-form-input'
.form-text.gl-text-gray-600.gl-mt-0 .form-text.gl-text-gray-600.gl-mt-0
= _('Any files larger than this limit will not be indexed, and thus will not be searchable.') = _('Any files larger than this limit only index the file name. The file content is neither indexed nor searchable.')
.form-group .form-group
= f.label :elasticsearch_indexed_field_length_limit, _('Maximum field length'), class: 'label-bold' = f.label :elasticsearch_indexed_field_length_limit, _('Maximum field length'), class: 'label-bold'
......
...@@ -370,10 +370,15 @@ RSpec.describe Gitlab::Elastic::Indexer do ...@@ -370,10 +370,15 @@ RSpec.describe Gitlab::Elastic::Indexer do
index_repository(project) index_repository(project)
end end
it 'does not index that file' do it 'indexes the file with empty content' do
files = indexed_file_paths_for('file') files = indexed_file_paths_for('file')
expect(files).to include('small_file.txt') expect(files).to include('small_file.txt', 'large_file.txt')
expect(files).not_to include('large_file.txt')
blobs = Repository.elastic_search('large_file', type: 'blob')[:blobs][:results].response
large_file_blob = blobs.find do |blob|
'large_file.txt' == blob['_source']['blob']['path']
end
expect(large_file_blob['_source']['blob']['content']).to eq('')
end end
end end
......
...@@ -3903,7 +3903,7 @@ msgstr "" ...@@ -3903,7 +3903,7 @@ msgstr ""
msgid "Any encrypted tokens" msgid "Any encrypted tokens"
msgstr "" msgstr ""
msgid "Any files larger than this limit will not be indexed, and thus will not be searchable." msgid "Any files larger than this limit only index the file name. The file content is neither indexed nor searchable."
msgstr "" msgstr ""
msgid "Any label" msgid "Any label"
...@@ -32876,6 +32876,9 @@ msgstr "" ...@@ -32876,6 +32876,9 @@ msgstr ""
msgid "The file containing the export is not available yet; it may still be transferring. Please try again later." msgid "The file containing the export is not available yet; it may still be transferring. Please try again later."
msgstr "" msgstr ""
msgid "The file could not be displayed because it is empty or larger than the maximum file size indexed (%{size})."
msgstr ""
msgid "The file has been successfully created." msgid "The file has been successfully created."
msgstr "" msgstr ""
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment