Change account search to be more forgiving of spaces (#34455)

This commit is contained in:
Eugen Rochko authored and GitHub committed 2025-04-25 10:35:21 +00:00
1 parent 7a70d95435
commit 91db45b197
2 files changed
+47 -5

No files matched your search

+16
View File
@@ -19,9 +19,16 @@ class AccountsIndex < Chewy::Index
type: 'stemmer',
language: 'possessive_english',
},
word_joiner: {
type: 'shingle',
output_unigrams: true,
token_separator: '',
},
},
analyzer: {
# "The FOOING's bar" becomes "foo bar"
natural: {
tokenizer: 'standard',
filter: %w(
@@ -35,11 +42,20 @@ class AccountsIndex < Chewy::Index
),
},
# "FOO bar" becomes "foo bar"
verbatim: {
tokenizer: 'standard',
filter: %w(lowercase asciifolding cjk_width),
},
# "Foo bar" becomes "foo bar foobar"
word_join_analyzer: {
type: 'custom',
tokenizer: 'standard',
filter: %w(lowercase asciifolding cjk_width word_joiner),
},
# "Foo bar" becomes "f fo foo b ba bar"
edge_ngram: {
tokenizer: 'edge_ngram',
filter: %w(lowercase asciifolding cjk_width),
+31 -5
View File
@@ -128,11 +128,37 @@ class AccountSearchService < BaseService
def core_query
{
multi_match: {
query: @query,
type: 'best_fields',
fields: %w(username^2 display_name^2 text text.*),
operator: 'and',
dis_max: {
queries: [
{
match: {
username: {
query: @query,
analyzer: 'word_join_analyzer',
},
},
},
{
match: {
display_name: {
query: @query,
analyzer: 'word_join_analyzer',
},
},
},
{
multi_match: {
query: @query,
type: 'best_fields',
fields: %w(text text.*),
operator: 'and',
},
},
],
tie_breaker: 0.5,
},
}
end