Как да комбинирам извършването на Solr OR заявка между пространствено търсене и обикновена заявка?

Документацията на Solr SpatialSearch подсказва, че можете да комбинирате пространствена функция като geodist() с обикновена заявка, но Не успях да определя правилния синтаксис за това.

По-конкретно този ред (в секцията geodist) привлече вниманието ми:

Или можете да използвате функцията за разстояние като основна заявка (или част от нея), за да получите разстоянието като оценка на документа:

...&q={!func}geodist()&sfield=store&pt=45.15,-93.85&sort=score asc

Следвайки примера за инвентаризация на магазина на тази страница, това, което бих искал да направя, е „да намеря всички магазини или в рамките на даден град, или на дадено разстояние от града“. Лесно мога да постигна и двете поотделно, но ми е трудно да ги комбинирам.

Ето едно псевдозапитване, което, надявам се, ще изясни какво се опитвам да направя:

...&q=storecity:Buffalo OR {!func}geodist(store,45.15,-93.8)&d=5

Очакваният резултат ще бъде всеки магазин в Бъфало или в рамките на 5 км от Бъфало. Случаят на използване е за много големи градове, като Лос Анджелис. Ако кажа всички магазини в рамките на 5 км от Лос Анджелис, той ще намери само магазини в рамките на 5 км от координатата, така че търсенето на магазини с storecity:"Los Angeles" ще включва изгубените резултати.

За бонус точки също съм любопитен как бих постигнал оценка, за да гарантирам, че магазините в града са класирани над тези извън него - но това е второстепенно и вероятно нещо, което мога да разбера :)


person STW    schedule 06.12.2012    source източник


Отговори (1)


Можете да използвате следната заявка, за да получите очаквания резултат.

..&q=storecity:Buffalo ИЛИ _query_: "{!geofilt sfield=location pt=45.15,-93.8 d=5}"

person Parvin Gasimzade    schedule 07.12.2012
comment
Здравейте, аз също се интересувам от това намиране на всички магазини или в рамките на даден град, как мога да направя това със Solr? Има ли нужда от нещо като обратно геокодиране, за да захранва Solr с града? - person sokratis; 30.03.2013