2016-05-15 4 views
0

В Solr допустим запрос со следующими словами: желтый, синий, зеленый.Частичные результаты в Solr

Я хотел бы вернуть документы, соответствующие в указанном порядке:

  • все документы, которые содержат: желтый и синий и зеленый
  • затем документы, которые содержат (желтый и синий) OR (желтый и зеленый) ИЛИ (синий и зеленый)
  • затем документы, содержащие желтый или синий или зеленый

Вкратце: документы, соответствующие все 3 условия, то соответствие 2 термы, то одиночные матчи.

Как я могу структурировать запрос для этого?

+0

Вы пытались повысить ...? –

+0

Boosting будет работать, чтобы возвращать документы, которые сначала имеют желтый цвет, затем синий, а затем зеленый, например; но это не помогло бы с частичными запросами. – Thomas

+0

Каков ваш тип поля для поля.? –

ответ

0

Это должно быть поведение по умолчанию при поиске в одном поле. Чем больше опций SHOULD сопоставлены - тем выше оценка.

Однако, если вы используете Dismax или eDismax, и условия соответствуют различным полям, вы получите конкурирующие баллы, и только самые высокие будут выбраны. Это может привести к тому, что некоторые термины в одном поле будут затенять наличие дополнительных терминов в другом поле и дать вам возможный другой порядок.

Одна из стратегий, которую можно попробовать в таких ситуациях, - это параметр tie (Tie Breaker), который будет принимать во внимание оценки из совпадений полей, не соответствующих максимальному балу. Попробуйте установить его на 1 для экстремального эффекта и посмотрите, похожи ли результаты на то, что вы ожидали.

Смежные вопросы