Skip to content
代码片段 群组 项目
提交 c3a23a84 编辑于 作者: Arturo Herrero's avatar Arturo Herrero
浏览文件

Elasticsearch: Reindex to remove title completion

We implemented search_as_you_type for merge request title completion
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167432, but the
production performance was not good.

We are removing the search_as_you_type field during the same milestone 17.5, so
we can skip the reindexing for self-managed instances.

Changelog: removed
EE: true
上级 927ee40b
无相关合并请求
---
name: ReindexMergeRequestsForTitleCompletion
version: '20240920154436'
version: '20241002103536'
description: Reindex merge requests for title completion
group: group::global search
milestone: '17.5'
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166751
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167887
obsolete: false
marked_obsolete_by_url:
marked_obsolete_in_milestone:
skippable: true
skip_condition: We implemented search_as_you_type for merge request title completion
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167432, but the production performance was not good.
We will remove the search_as_you_type field during the same milestone 17.5, so we can skip the reindexing for
self-managed instances.
# frozen_string_literal: true
class ReindexMergeRequestsForTitleCompletion < Elastic::Migration
space_requirements!
skip_if -> { !Gitlab::Saas.feature_available?(:advanced_search) }
def migrate
Elastic::ReindexingTask.create!(targets: %w[MergeRequest], options: { skip_pending_migrations_check: true })
......@@ -10,8 +10,4 @@ def migrate
def completed?
true
end
def space_required_bytes
3 * helper.index_size_bytes(index_name: MergeRequest.index_name)
end
end
......@@ -31,10 +31,6 @@ module Config
tokenizer: 'standard',
filter: %w[word_delimiter_graph_filter asciifolding lowercase stemmer flatten_graph remove_duplicates]
},
title_completion_analyzer: {
tokenizer: 'standard',
filter: %w[lowercase stop]
},
default: {
tokenizer: 'standard',
filter: %w[lowercase stemmer]
......
......@@ -21,8 +21,7 @@ module MergeRequestConfig
indexes :id, type: :integer
indexes :iid, type: :integer
indexes :title, type: :text, index_options: 'positions', analyzer: :title_analyzer,
fields: { completion: { type: :search_as_you_type, analyzer: :title_completion_analyzer } }
indexes :title, type: :text, index_options: 'positions', analyzer: :title_analyzer
indexes :description, type: :text, index_options: 'positions', analyzer: :code_analyzer
indexes :state, type: :keyword
indexes :project_id, type: :integer
......
# frozen_string_literal: true
require 'spec_helper'
require File.expand_path('ee/elastic/migrate/20240920154436_reindex_merge_requests_for_title_completion.rb')
require File.expand_path('ee/elastic/migrate/20241002103536_reindex_merge_requests_for_title_completion.rb')
RSpec.describe ReindexMergeRequestsForTitleCompletion, feature_category: :global_search do
let(:version) { 20240920154436 }
let(:version) { 20241002103536 }
let(:migration) { described_class.new(version) }
it 'does not have migration options set', :aggregate_failures do
......@@ -26,18 +26,4 @@
expect(migration.completed?).to eq(true)
end
end
describe '#space_required_bytes' do
let(:helper) { ::Gitlab::Elastic::Helper.default }
let(:space_required_bytes) { migration.space_required_bytes }
before do
allow(::Gitlab::Elastic::Helper).to receive(:default).and_return(helper)
allow(helper).to receive(:index_size_bytes).with(index_name: MergeRequest.index_name).and_return(1_000)
end
it 'returns space required' do
expect(space_required_bytes).to eq(3_000)
end
end
end
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册