2015-04-21 3 views
0

Я хочу выполнить повышение на ценовом поле, забив продукты с более низкими ценами выше. Я не мог найти способ указать это.Azure Search score boosting by reverse amount

В настоящее время у меня есть что-то вроде

let priceBoost = 
     new MagnitudeScoringFunction(
      new MagnitudeScoringParameters(
       BoostingRangeStart = 0.0, 
       BoostingRangeEnd = 100.0, 
       ShouldBoostBeyondRangeByConstant = true), 
      "price", 
      10.0) 

Я попытался обратить вспять BoostingRangeStart/End, но это не работает, а в результате ошибки сериализации по поиску.

Любое понимание оценено.

ответ

0

Я работаю для AzureSearch. Чтобы ответить на ваш вопрос, вы можете оценивать продукты с более низкими ценами выше, если вы установите BoostingRangeStart на 100 и BoostingRangeEnd на 0.

Кажется, у вас другая проблема, хотя это ошибка сериализации. Не могли бы вы поделиться информацией об этом?

+0

Похоже, что ошибка, которую вы получаете, не связана с полем «цена», о котором вы спрашивали. Не могли бы вы проверить мой ответ без поля «точек», чтобы мы могли закрыть это? Не стесняйтесь, напишите мне свое полное определение индекса в jlembicz в Microsoft dot com. Я помогу вам решить проблему сериализации. Не стесняйтесь публиковать новый вопрос о проблеме сериализации с помощью тега azure-search. Пожалуйста, постарайтесь сделать ваш пример как можно более изолированным от конкретной проблемы. – Yahnoosh

+0

Спасибо Yahnoosh за подтверждение того, как добиться повышения по нисходящим значениям. Я пошлю вас по электронной почте отдельно для проблемы с сериализацией. – hocho

+1

Проблема сериализации была результатом использования примитивов с непустым значением в пользовательском классе модели. Azure Search рассматривает все примитивные типы как обнуляемые. Однако SDK должен подтвердить это раньше. Я открыл проблему в GitHub для отслеживания этого: https://github.com/Azure/azure-sdk-for-net/issues/1063 –