ElasticSearch / Lucene запрашивает строгое соответствие дочерних полей - PullRequest
0 голосов
/ 30 октября 2018

Скажем, у меня есть 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 с объединенными этими значениями или что-то подобное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...