у меня есть коллекция (Foo), в которой есть поле «ключевые слова». Я хочу найти документы, которые соответствуют заданной строке (имеют хотя бы одно подходящее ключевое слово), и отсортировать их по количеству совпадений.
Foo:
{name: 'Foo1', keywords: ['example', 'sample', 'keywords']},
{name: 'Foo2', keywords: ['keywords example', 'find']},
{name: 'Foo3', keywords: ['search']},
{name: 'Foo4', keywords: ['example keywords', 'find', 'example', 'search']}
Таким образом, для строки "This is example keywords search"
должны возвращаться документы в следующем порядке:
- Foo4 (3 совпадения — «пример ключевых слов», «пример», «поиск»)
- Foo1 (2 совпадения — «пример», «ключевые слова»)
- Foo3 (1 совпадение — «поиск»)
Я использую Symfony3 и DoctrineODM, если это имеет значение. Всем спасибо за помощь!