В моем приложении есть аутентифицированные пользователи, у которых есть доступ к общей базе данных, содержащей до 500 000 элементов. У каждого из пользователей есть свой собственный общедоступный веб-сайт, и ему нужна возможность расставить приоритеты для отображаемых элементов (подумайте о голосовании) на своем собственном сайте.
из 500 000 элементов у них может быть только до 200 приоритетных элементов, порядок остальных элементов менее важен.
Каждый из пользователей расставит приоритеты по-разному.
Сначала я задал аналогичный вопрос mysql здесь Результаты Mysql отсортированы по списку, который является уникальным для каждого пользователя, и получил хороший ответ, но я считаю, что лучшим вариантом может быть выбор решения без индексации sql.
Можно ли это сделать в Lucene? Есть ли другая поисковая технология, которая лучше подходит для этого.
пс. Google реализует настройку аналогичного типа для своих результатов поиска, где вы можете расставить приоритеты и исключить свои собственные результаты поиска, если вы вошли в систему.
Обновление: повторно помечено сфинксом, поскольку я читал документацию и считаю, что он может делать то, что я ищу, с «значениями атрибутов для каждого документа», хранящимися в памяти - интересно услышать какие-либо отзывы по этому поводу от гуру сфинксов