2014-02-20 7 views
0

나는 SOLR에 처음 왔으므로 나와 함께 곰. 그래서 세계 여러 나라에 수많은 호텔이 있으며 어느 곳에서나 검색 할 수 있습니다. 예를 들어 도쿄에 호텔이있을 수 있으며 런던이나 도쿄 또는 뉴욕에서도이 호텔을 검색 할 수 있습니다.dismax 또는 edismax를 사용하여 SOLR에서 쿼리를 향상시키는 방법은 무엇입니까?

내가 만들려고하는 질문은 호텔을 검색하고 내가있는 시장/국가를 기반으로 한 호텔을 반환하지만 다른 시장/국가의 결과도 반환하는 것입니다. 예를 들어, 내가 영국에있을 경우 시장은 GB가 될 것이고 JP (일본)와 같은 다른 시장을 포함하면서 결과에서 가장 높게 배치되어야하지만 GB의 결과는 더 낮게 배치되는 GB를 기반으로 한 결과를 반환 할 것입니다.

지금까지 나는 쿼리 (작동하지 않는)이 있습니다 :

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을 할 수 있지만 이것은 단지 GB 시장을 반환합니다.

원하는 결과를 얻기 위해이 쿼리를 어떻게 구성해야합니까? 이 쿼리는 결과를 얻을 도움이 될 것입니다

+0

나는 비슷한 질문을 한 것 같다. http://stackoverflow.com/questions/21876763/how-can-i-boost-a-result-in-solr-based-on-a-parameter – buddy86

답변

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을 언급했다. 즉, 결과가 두 개 이상이라도 단일 결과 만 얻을 수 있습니다.