Как я могу использовать dismax или e dismax, чтобы повысить запрос в SOLR?

Я новичок в SOLR, так что терпите меня. Таким образом, есть множество отелей в разных странах мира, и вы можете искать их в любом месте. Например, в Токио может быть гостиница, и я могу искать этот отель в Лондоне или даже в Токио или в Нью-Йорке.

Запрос, который я пытаюсь создать, заключается в поиске отеля и возврате запроса в зависимости от рынка / страны, в которой я нахожусь, но также и результатов из разных рынков / стран. Например, если я нахожусь в Великобритании, рынок будет представлять собой ГБ, и он будет возвращать результаты, основанные на ГБ, который должен быть наивысшим в результате, в то время как другие рынки, такие как JP (Япония), будут размещены ниже.

Вопрос, который я пока задаю (это не работает):

q=&fl=*&rows=1&sort=query({!qf=market v='GB'}) desc,
totalPrice asc
&fq=hotelCheckInDate:[2014-02-20T00:00:00.000Z TO 2014-07-20T23:59:59.9999Z] 
AND hotelCityCode:PAR

Я могу легко сделать market:GB но это вернуло бы только рынок ГБ.

Как мне структурировать этот запрос, чтобы получить желаемые результаты?

1 ответ

Надеюсь, что этот запрос поможет вам получить ожидаемый результат

q=*:*&defType=edismax&bq=market:GB^2&fq=hotelCheckInDate:[2014-02-20T00:00:00.000Z TO 2014-07-20T23:59:59.9999Z] AND hotelCityCode:PAR

В своем запросе вы упомянули rows=1, Это означает, что даже если результат более одного, вы получите только один результат.

Другие вопросы по тегам