Скажем, у меня есть Elastic-индекс поиска песен, и поле 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'}
]
}
Примечание. У меня есть один исполнитель с именем «Micheal», а другой - с фамилией «Джексон», так что технически эта песня соответствует моему запросу.
Я не знаю подходящих слов для поиска этой проблемы. Это проблема с тем, как структурирован мой поисковый индекс? Могу ли я сформулировать свой запрос, чтобы избежать этого? В идеале я не хочу иметь поле full_name
с объединенными этими значениями или что-то подобное.