Как хранить условия поиска - PullRequest
0 голосов
/ 21 апреля 2020

:)

Я создаю аудио библиотеку с функцией поиска. В разговоре с клиентом мы выяснили, что у дорожки должна быть возможность иметь тег (например, жанр / mood / et c), но тег также может иметь псевдонимы (например, при поиске joyful вы найти треки с тегом happy), который я называю search terms в приложении. Поэтому, когда кто-то выполняет поиск в приложении, запрос к базе данных будет выглядеть так:

search_terms -> search_terms_tags -> tags_tracks -> tracks

Это кажется действительно неэффективным, и я подозреваю, что это, скорее всего, негативно повлияет на производительность панели поиска. Я также рассматриваю другие варианты, такие как хранение тегов и поисковых терминов в одной таблице или хранение всех псевдонимов тега в одной ячейке. Но эти решения кажутся чуть менее перспективными. Возможно, в будущем я захочу использовать таблицу поисковых терминов для других целей, например для оптимизации большинства поисковых терминов, связывания их с другими объектами в приложении и т. Д. c. Но, конечно, если бы это сильно повлияло на производительность, я бы go для такого решения.

Я довольно новичок в создании функции поиска, поэтому мне очень интересно узнать, как это обычно решается.

Спасибо!

...