Как отсортировать результаты поиска по релевантности? - PullRequest
1 голос
/ 27 декабря 2011

Я работаю над проектом, который выполняет поиск в базе данных, а затем сортирует результаты поиска по релевантности в соответствии со строкой, введенной пользователем. Я думаю, что мой текущий поиск довольно приличный, но компаратор, который я написал для сортировки результатов по релевантности, дает мне забавные результаты. Я не знаю, что считать уместным. Я знаю, что это большая ветвь поиска информации, но я не знаю, с чего начать поиск примеров поиска, которые сортируют объекты по релевантности и будут благодарны за любые отзывы.

Чтобы немного подробнее рассказать о моей конкретной проблеме, пользователь будет вводить строку в базу данных веб-сайта, в которой хранятся объекты (элементы в магазине) с различными полями, такими как второстепенная и основная классификация (например, Игра XBox 360 может храниться с полями major = video_games и minor = xbox360 вместе с определенным именем). Четыре основных поля, которые, на мой взгляд, следует учитывать при поиске, - это конкретное имя, мажор, минор и жанр типа объекта, если это помогает.

1 Ответ

1 голос
/ 21 января 2012

Если вы не хотите использовать lucene / Solr, вы всегда можете использовать метрики расстояния, чтобы найти сходство между запросом и строками, полученными из базы данных.Как только вы наберете баллы, вы сможете отсортировать их, и они будут считаться отсортированными по релевантности.

Именно это и происходит за кулисами люцена.Вы можете использовать простые метрики сходства, такие как расстояние до Манхэттена, расстояние между точками в n-мерном пространстве и т. Д. Для получения более подробной информации ищите формулу оценки люцен.

...