fixed song search

This commit is contained in:
Alexander Karpov 2024-12-05 18:45:59 +03:00
parent f268212094
commit bf182dbd0a

View File

@ -11,7 +11,7 @@ class SongDocument(Document):
properties={ properties={
"name": fields.TextField( "name": fields.TextField(
fields={ fields={
"raw": fields.KeywordField(normalizer="lowercase"), "raw": fields.KeywordField(normalizer="lowercase_normalizer"),
}, },
), ),
"name_transliterated": fields.TextField( "name_transliterated": fields.TextField(
@ -30,7 +30,7 @@ class SongDocument(Document):
properties={ properties={
"name": fields.TextField( "name": fields.TextField(
fields={ fields={
"raw": fields.KeywordField(normalizer="lowercase"), "raw": fields.KeywordField(normalizer="lowercase_normalizer"),
}, },
), ),
"name_transliterated": fields.TextField( "name_transliterated": fields.TextField(
@ -67,6 +67,7 @@ class Index:
settings = { settings = {
"number_of_shards": 1, "number_of_shards": 1,
"number_of_replicas": 0, "number_of_replicas": 0,
"analysis": {
"normalizer": { "normalizer": {
"lowercase_normalizer": { "lowercase_normalizer": {
"type": "custom", "type": "custom",
@ -74,7 +75,6 @@ class Index:
"filter": ["lowercase"], "filter": ["lowercase"],
} }
}, },
"analysis": {
"filter": { "filter": {
"my_transliterator": { "my_transliterator": {
"type": "icu_transform", "type": "icu_transform",
@ -151,8 +151,8 @@ class Index:
"filter": [ "filter": [
"lowercase", "lowercase",
"autocomplete_filter", "autocomplete_filter",
"english_stemmer", # Apply English stemming for autocomplete "english_stemmer",
"russian_stemmer", # Include Russian stemming if applicable "russian_stemmer",
], ],
}, },
"search_synonym_with_stemming": { "search_synonym_with_stemming": {
@ -161,8 +161,8 @@ class Index:
"filter": [ "filter": [
"lowercase", "lowercase",
"synonym_filter", "synonym_filter",
"english_stemmer", # Apply English stemming for synonym search "english_stemmer",
"russian_stemmer", # Include Russian stemming if processing Russian synonyms "russian_stemmer",
], ],
}, },
}, },
@ -183,7 +183,7 @@ class AuthorDocument(Document):
name = fields.TextField( name = fields.TextField(
fields={ fields={
"raw": fields.KeywordField(), "raw": fields.KeywordField(),
"exact": fields.KeywordField(normalizer="lowercase"), "exact": fields.KeywordField(normalizer="lowercase_normalizer"),
}, },
) )
name_transliterated = fields.TextField( name_transliterated = fields.TextField(
@ -198,7 +198,7 @@ class AuthorDocument(Document):
class Index: class Index:
name = "authors" name = "authors"
settings = SongDocument.Index.settings # Reuse settings settings = SongDocument.Index.settings
class Django: class Django:
model = Author model = Author
@ -209,7 +209,7 @@ class AlbumDocument(Document):
name = fields.TextField( name = fields.TextField(
fields={ fields={
"raw": fields.KeywordField(), "raw": fields.KeywordField(),
"exact": fields.KeywordField(normalizer="lowercase"), "exact": fields.KeywordField(normalizer="lowercase_normalizer"),
}, },
) )
name_transliterated = fields.TextField( name_transliterated = fields.TextField(
@ -243,7 +243,7 @@ class AlbumDocument(Document):
class Index: class Index:
name = "albums" name = "albums"
settings = SongDocument.Index.settings # Reuse settings settings = SongDocument.Index.settings
class Django: class Django:
model = Album model = Album