Я пытаюсь выяснить, как спроектировать мою схему индекса SOLR, чтобы индексировать навыки и уровни учащихся (начальный, средний, эксперт) и иметь возможность искать несколько навыков (без указания уровня), и чтобы SOLR возвращал ученикам соответствующий рейтинг (в зависимости от уровня).
Пример:
Джон Доу обладает следующими навыками:
- ruby: эксперт
- JavaScript: новичок
Марк Смит обладает следующими навыками:
- Рубин: начинающий
- javascript: средний
Сьюзан Денвер обладает следующими навыками:
- Рубин: средний
- JavaScript: средний
Поиск "ruby" должен вернуть
Поиск «javascript» должен вернуть
- Марк - Сьюзен (тот же счет)
- John
Поиск комбинации навыков становится еще сложнее.
Решения, которые я имею в виду, включают использование тегов, подобных структурированным, как [skill] _ [level], и одно поле индекса содержит теги. Затем преобразуйте ключевое слово запроса во все различные теги ...
Другой вариант - создать динамическое поле для каждого «навыка»: skill_ruby, skill_javascript и иметь уровень в качестве значения.
Но я уверен, что должно быть более простое решение, если оно наверняка смоделировано в других сценариях (рейтинги продуктов и т. Д.)
Какая правильная схема индекса для индексации данных этого типа?