Возможно ли установить порог оценки Solr "разумно", независимо от полученных результатов? (т.е. является ли Solr Scoring стандартизированным в любом случае)
У меня есть индекс Solr со многими записями, и по запросу возвращается некоторое подмножество - каждая запись имеет некоторый счет (очевидно). Как только результаты возвращаются с оценками, я хочу иметь возможность "сохранять" только те результаты, которые выше некоторой оценки (то есть только результаты определенного качества). Возможно ли это сделать, когда возвращаемое подмножество может быть чем-либо?
Я спрашиваю, потому что кажется, что в некоторых запросах оценка, скажем, 0,008, приводит к достойному совпадению, тогда как в других запросах более высокий балл приводит к плохому соответствию.
В идеале я просто ищу способ взять верх x
записи, если они имеют, по крайней мере, определенного качества.
Заранее спасибо!
3 ответа
Я думаю, вы не должны этого делать. С помощью модели оценки TF-IDF невозможно рассчитать оценку, выше которой все результаты актуальны и наоборот. И если вам удастся сделать это, очень вероятно, что этот порог больше не будет действительным после нескольких обновлений вашего индекса (потому что частоты документа будут меняться).
Если вы все еще хотите сделать это, я думаю, что это достижимо с помощью запросов функций: есть if
(в багажнике) и query
функции, доступные в Solr. Просто отфильтруйте результаты, чтобы сохранить только те записи, которые имеют более высокий балл, чем заданный порог.
Вы можете реализовать то, что называется нормализованным счетом ( Scores As Percentages).
Для более подробной информации смотрите:
Как нормализовать баллы Lucene?
как мне нормализовать балл solr/lucene?
Удалить результаты ниже определенного порогового значения в Solr/Lucene?
Также хотелось бы сначала пройти через ScoresAsPercentages.
Solr не нормализует оценки, поскольку это может быть легко сделано на стороне клиента.
Вы можете использовать maxScore, который представлен в результатах, разделив все оценки на maxScore.
Первая запись будет иметь один балл, за которым следуют остальные.