Как я могу использовать 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
, Это означает, что даже если результат более одного, вы получите только один результат.