2013-05-21 3 views
0

Мой сервер Solr ссылается на события с различными текстовыми полями (название события, описание, ключевые слова ...) и, конечно же, дату начала и дату окончания.Запрос Solr не возвращает ожидаемые результаты

Когда я запускаю следующий запрос:

http://xxxxxxxxxxx/viparis-solr-server/150/spell?q=foire&wt=json 

Я получаю 28 событий, все из которых содержат слово «Foire» в одном из индексированных текстовых полей.

Но если я Lauch следующий запрос:

http://xxxxxxxxxxx/viparis-solr-server/150/spell?q=foire%20%2BdateFin:[NOW%20TO%20*]&wt=json 

Я получаю 100 событий (​​«dateFin» означает «ENDDATE» на французском языке), все из них с конечной датой сегодня или после сегодняшнего дня, но не все из них, содержащих слово «foire» в одном из индексированных текстовых полей.

Как мне совместить два критерия, чтобы получить только события, содержащие слово «foire» AND с датой окончания после сегодняшнего дня?

+2

Запрос должен быть q = foire & fq = dateFin: [NOW TO *] – Jayendra

ответ

2

Оператор запроса по умолчанию для solr является OR. Вы можете сделать одно из следующих действий, чтобы получить и поведение вы ожидаете:

  • Добавить &q.op=AND вашего запроса
  • Разместите + перед условием поиска, чтобы сказать Solr включить их оба.
  • Используйте finDate как filter query.

Более подробную информацию вы можете получить на странице SolrQuerySyntax.

+0

'http: // xxxxxxxxxxx/viparis-solr-server/150/spell? Q = foire% 20% 2BdateFin: [NOW% 20TO% 20 * ] & q.op = AND & wt = json' тоже не работает. –

+0

Как я уже сказал, а также @Jayendra, попробуйте использовать dateFin как запрос на выборку. –

+0

Запрос фильтра выполнил эту работу. Спасибо! –

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