Solr edismax, повышение по столбцу документа

У меня есть база данных solr с магазинами и описаниями. Я запрашиваю solr, чтобы получить мне магазины, которые включают определенные ключевые слова в shopTitle или shopDescription. Я использую edismax, чтобы увеличить значение shopTitle по сравнению с shopDescription, чтобы при поиске названия магазина оно всегда оказывалось первым, независимо от того, сколько раз оно может быть упомянуто в описании другого магазина. Однако у нас также есть внутренний индикатор сортировки (оценка). То, что я ищу, - это смешать этот внутренний рейтинг с повышением документа.

ie.

shop: Amazon
shopDescription: .... eBay ... mediamarkt ... ikea dishwasher
internalRanking: 250000

shop: eBay
shopDescription: .... amazon ... amazon .... ikea ... dishwasher dishwasher dishwasher
internalRanking: 180000

shop: mediamarkt
shopDescription: .... eBay .... amazon ... amazon ... dishwasher dishwasher
internalRanking: 178000

shop: Ikea
shopDescription: ... eBay ... mediamarkt ...
internalRanking: 175000

shop: dishwasher world
shopDescription: ... dishwasher ... eBay ... mediamarkt
internalRanking: 80000

shop: dishwasher masters
shopDescription: ... dishwasher ... dishwasher ... dishwasher ... dishwasher dishwasher
internalRanking: 100

что я делаю в банкомате:

"params": {
  "pf": "title description",
  "sort": "computed_ranking desc",
  "q": "dishwasher",
  "qf": "title^20 description^0.1",
  "defType": "edismax"
}

это работает нормально, но не включает internalRanking. Как я могу подтолкнуть его к расчету весов, чтобы

поиск посудомоечной машины должен возвращать магазины в следующем порядке

dishwasher world (1st because: title contains keyword + highest internal ranking on the shops with title match)
dishwasher masters (2nd because: title contains keyword but has lass internal ranking than dishwasher world)
eBay (3rd because of the description)
mediamarkt (4th because of the description)
Amazon (5th because of the description)

но я не могу понять... как я могу смешать internalRanking (свойство/столбец документа) с весами документа, чтобы я мог откалибровать заказ.


person ptheofan    schedule 07.05.2014    source источник


Ответы (1)


решение найдено.

  1. Я должен использовать dismax, а не edismax для моего случая.
  2. dismax.bf — это функция. Все, что мне нужно было сделать, это указать свой атрибут там (внутренний рейтинг)
  3. моей самой большой ошибкой было то, что баллы моего повышения были слишком низкими. мой внутренний рейтинг может содержать значения до 1 миллиона. Корректировка моих очков повышения наконец-то дала ожидаемые результаты!

Я до сих пор люблю соль :)

person ptheofan    schedule 07.05.2014