Я просматривал Интернет в поисках структуры индексации и поиска и наткнулся на 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 полей.