Использование пружины Solr с Groovy.Spring Solr boosting issue
Имейте проблему, когда я пытаюсь повысить результаты.
Чтобы объяснить, рассмотрите упрощенную область покупок в Интернете, где индексированным объектом является Продукт.
У пользователя есть корзина для покупок и список пожеланий, каждый из которых является простым списком кодов продуктов (т. Е. Список <String>). Два списка сначала обрабатываются, чтобы гарантировать, что они отличаются друг от друга и уникальны.
Простым поиском может быть ключевое слово String в тексте Products (составное поле, созданное с использованием copyField, содержащее его описание и заголовок).
Требование состоит в том, чтобы результаты отображали каждый Продукт, в котором ключевое слово сопоставляется в его тексте с любым из тех, которые отображаются в первой торговой корзине, а затем - в списке желаний, за которым следуют любые другие.
Проблема связана с тем, что, хотя происходит некоторое повышение, и результаты из списка желаний и shoppingBasket, сгруппированные по каждой группе, не всегда отображаются перед совпадениями в wishList.
В зависимости от продуктов, в каждом списке, иногда отображаются в следующем порядке:
все WishList матчи, все shoppingBasket матчи, все остальные матчи
вместо ожидаемого:
все shoppingBasket соответствует все WishList матчей, все остальные матчи
повышающие применяются с использованием этих критериев:
boostingCriteria = new Criteria('productCode_s').in(shoppingBasket).boost(2.0f)
boostingCriteria = boostingCriteria.or(
new Criteria('productCode_s').in(wishList).boost(1.0f))
Увидев это similar issue Я прокомментировал Сорт, который добавлялся к PageRequest, это не имело значения.
Я также использовал аннотацию @Score, чтобы включить оценку в возвращаемые результаты. Осмотрев их, я вижу, что solr дает одинаковый результат для всех матчей либо в shoppingBasket, либо в WishList. Все совпадения за пределами этих списков получают еще один более низкий балл (идентичный между ними).
Пробовали разные значения для повышения (10000.0f и 5000.0f соответственно) безрезультатно. Он сделал другой счет, но он все равно был идентичным между всеми матчами либо в shoppingBasket, либо в WishList.
Даже упрощая поиск только до критериев повышения, заказ все еще отсутствует.
Любые идеи будут оценены.