Скажем, у меня есть эластичный поисковый индекс песен, а поле artist
может содержать несколько исполнителей.
Я хочу найти песни Майкла Джексона, поэтому могу использовать такой запрос:
artist.first_name: Michael AND artist.last_name: Jackson
Однако недавно я заметил, что это может вернуть мне такой результат:
{
title: 'Some Janet Jackson Song feat. Michael Bublé',
artist: [
{first_name: 'Michael', last_name: 'Bublé'}
{first_name: 'Janet', last_name: 'Jackson'}
]
}
Обратите внимание: у меня есть один исполнитель с именем «Майкл», а другой - с фамилией «Джексон», так что технически эта песня соответствует моему запросу.
Я не знаю подходящих слов для поиска этой проблемы. Проблема в том, как устроен мой поисковый индекс? Могу ли я сформулировать свой запрос, чтобы этого избежать? В идеале я не хочу иметь поле full_name
с объединенными этими значениями или что-то в этом роде.
да, поправить можно, на всякий случай поделитесь маппингами?