Я просматривал Интернет в поисках структуры индексации и поиска и наткнулся на Solr. Функциональность, которая нам абсолютно необходима, заключается в повышении результатов в зависимости от того, какое поле содержало попадание.
Небольшой пример:
Рассмотрим такую запись:
<movie>
<title>The Dark Knight</title>
<alternative_title>Batman Begins 2</alternative_title>
<year>2008</year>
<director>Christopher Nolan</director>
<plot>Batman, Gordon and Harvey Dent are forced to deal with the chaos unleashed by an anarchist mastermind known only as the Joker, as it drives each of them to their limits.</plot>
</movie>
Я хочу, например, объединить поля title
, alternative_title
и plot
в одно поле поиска, что не является слишком сложным после просмотра документации и руководств по Solr/Lucene.
Однако я также хочу, чтобы фильмы с хитом в title
имели более высокий балл, чем хиты по alternative_title
а те, в свою очередь, должны иметь более высокий рейтинг, чем хиты в поле plot
.
Есть ли способ указать этот вид оценки в XML или нам нужно разработать какой-то собственный алгоритм оценки?
Также обратите внимание, что приведенный мной пример вымышлен, и реальные данные, вероятно, будут содержать поля 100+.