Improve search relevance and artist transliteration
This commit is contained in:
1 parent
db4548b115
commit
82f3eed9a0
10 files changed
+212
-12
No files matched your search
@@ -199,10 +199,17 @@ Meilisearch, индексы:
|
||||
| `albums` | `title`, `artist_name`, `title_translit` | `year`, `popularity` |
|
||||
| `tracks` | `title`, `artist_names`, `album_title`, `title_translit` | `genre`, `year`, `popularity`, `available` |
|
||||
|
||||
- `*_translit` — транслитерация (кириллица ↔ латиница), плюс поле с **исправлением раскладки**
|
||||
- `*_translit` — варианты транслитерации (кириллица ↔ латиница), включая словарь
|
||||
устоявшихся написаний (`Boulevard` → `бульвар`) наряду с побуквенным вариантом.
|
||||
**Исправление раскладки**
|
||||
(`ghbdtn` → `привет`): при пустом результате клиентский запрос повторяется в альтернативной раскладке
|
||||
на стороне `api`.
|
||||
- Ранжирование: стандартные правила Meilisearch + `popularity:desc` (глобальные засчитанные прослушивания за 90 дней).
|
||||
- Запрос учитывает все слова (`matchingStrategy=all`), не отбрасывая последнее ради заполнения списка.
|
||||
Опечатки и поиск по префиксу по-прежнему обрабатывает Meilisearch.
|
||||
- Ранжирование: `words`, `typo`, `exactness`, `proximity`, `attribute`, `sort`, `popularity:desc`.
|
||||
Точное имя исполнителя (включая вариант транслитерации) закрепляется перед составными именами
|
||||
в подсказках и не опускается из-за персонализации. Новые варианты появляются после переиндексации;
|
||||
API запускает её при старте.
|
||||
- `/search/suggest` использует `multi-search` (один запрос — три индекса), отдаёт ≤ 3/3/5. Клиент делает debounce 150 мс,
|
||||
отменяет предыдущий запрос (`AbortController`).
|
||||
- Персонализация: `suggest` берёт из Meilisearch втрое больше кандидатов и переранжирует их в `api`
|
||||
|
||||
Reference in new issue
Block a user