Skip to content
代码片段 群组 项目
未验证 提交 34d295bc 编辑于 作者: Dmitry Gruzd's avatar Dmitry Gruzd 提交者: GitLab
浏览文件

Merge branch '430812-routing-is-missing-for-group-wiki-search' into 'master'

Routing is missing for group wiki search

See merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139669



Merged-by: default avatarDmitry Gruzd <dgruzd@gitlab.com>
Approved-by: default avatarDmitry Gruzd <dgruzd@gitlab.com>
Co-authored-by: default avatarrkumar555 <rkumar@gitlab.com>
No related branches found
No related tags found
无相关合并请求
...@@ -27,7 +27,7 @@ def elastic_search( ...@@ -27,7 +27,7 @@ def elastic_search(
per per
end end
res = search(query_hash, options.slice(:count_only)) res = search(query_hash, options)
{ type.pluralize.to_sym => { results: res.results, total_count: res.size } } { type.pluralize.to_sym => { results: res.results, total_count: res.size } }
end end
......
...@@ -27,7 +27,7 @@ def base_options ...@@ -27,7 +27,7 @@ def base_options
override :scope_options override :scope_options
def scope_options(scope) def scope_options(scope)
# User uses group_id for namespace_yquery # User uses group_id for namespace_query
case scope case scope
when :users when :users
super.except(:group_ids) # User uses group_id for namespace_query super.except(:group_ids) # User uses group_id for namespace_query
......
...@@ -291,6 +291,11 @@ ...@@ -291,6 +291,11 @@
let(:scope) { 'wiki_blobs' } let(:scope) { 'wiki_blobs' }
let(:search) { 'term' } let(:search) { 'term' }
it 'adds correct routing field in the elasticsearch request' do
described_class.new(nil, search_level, search: search).execute.objects(scope)
assert_routing_field("n_#{search_level.root_ancestor.id}")
end
context 'for project wikis' do context 'for project wikis' do
let_it_be_with_reload(:project) { create(:project, :wiki_repo, :in_group) } let_it_be_with_reload(:project) { create(:project, :wiki_repo, :in_group) }
......
...@@ -215,6 +215,7 @@ ...@@ -215,6 +215,7 @@
include_context 'ProjectPolicyTable context' include_context 'ProjectPolicyTable context'
let_it_be(:group) { create(:group) } let_it_be(:group) { create(:group) }
let_it_be(:public_project) { create(:project, :wiki_repo, :public) }
let_it_be_with_reload(:project) { create(:project, namespace: group) } let_it_be_with_reload(:project) { create(:project, namespace: group) }
let_it_be_with_reload(:project2) { create(:project) } let_it_be_with_reload(:project2) { create(:project) }
...@@ -341,6 +342,12 @@ ...@@ -341,6 +342,12 @@
with_them do with_them do
it_behaves_like 'search respects visibility' it_behaves_like 'search respects visibility'
end end
it 'adds correct routing field in the elasticsearch request' do
public_project.wiki.create_page('test.md', "# term")
described_class.new(nil, public_project, search: search).execute.objects(scope)
assert_routing_field("n_#{public_project.root_ancestor.id}")
end
end end
context 'milestone' do context 'milestone' do
......
...@@ -25,6 +25,13 @@ def assert_named_queries(*expected_names, without: []) ...@@ -25,6 +25,13 @@ def assert_named_queries(*expected_names, without: [])
expect(a_named_query).to have_been_made.at_least_once, message expect(a_named_query).to have_been_made.at_least_once, message
end end
def assert_routing_field(value)
es_host = Gitlab::CurrentSettings.elasticsearch_url.first
search_uri = %r{#{es_host}/[\w-]+/_search}
expect(a_request(:post, search_uri).with(query: hash_including({ 'routing' => value }))).to have_been_made
end
def ensure_elasticsearch_index! def ensure_elasticsearch_index!
# Ensure that any enqueued updates are processed # Ensure that any enqueued updates are processed
Elastic::ProcessBookkeepingService.new.execute Elastic::ProcessBookkeepingService.new.execute
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册