Вы здесь

Фильтр по радиусу с помощью Apache Solr

0

У меня есть кастомный блок c range:
http://joxi.ru/E2pd309sBBEj92

Все передается в урл:
http://joxi.ru/DrlQKq9F44BdQm

Это получается есть в gmap : Longitude и Latitude по ним нужно сделать фильтр в радиусе, тоесть автоматически берет ваше место локации и от него берет отсчет в км от урла http://joxi.ru/DrlQKq9F44BdQm .

Я б хотел это все выкрутить через Apache Solr но как понятно что в каждого человека будет разное место локации и проиндексировать в солре не возможно.

Вот например я могу проиндексировать поле:

Местоположение на карте » LatLong Pair

сделать фасет http://joxi.ru/zANDMNjfllGx8m

Вопрос, можно средствами Drupal выкрутить это, может хуками но что бы тянулось из солра.

Заранее благодарен за ответ.

Версия Drupal: 
7.x
Связанные проекты: 
Search API
Вопрос задан 05.12.2015 - 13:51

Ответы

0

Предположу, что здесь нужно добавить поле в индекс Search API, которое будет хранить именно расстояние, которые вы будете рассчитывать с помощью своей функции.

Вот здесь есть статья и пример, как такие поля добавляются
http://ygerasimov.com/add-custom-field-search-api-apachesolr-index

Ответ дан 05.12.2015 - 15:37

"которое будет хранить именно расстояние, которые вы будете рассчитывать с помощью своей функции"

Я више писал что расстояние всегда другое, так как человек заходит из Казахстану например с какой то улицы или с Португалии с какой то улицы.

Комментарий оставлен 05.12.2015 - 16:09

И например, вы сейчас в Португалии, можно вытащить ваш Longitude и Latitude и от тогда уже дергать все даные из солра.

Комментарий оставлен 05.12.2015 - 16:11

Так а расстояние от местоположения человека до чего ?

Комментарий оставлен 05.12.2015 - 16:15

Человек заходит на сайт и например выведено все фирмы стандартно в радиусе 5 км где он находится и когда он изменяет раудиус, сразу выводятся все фирмы которие попадают в этот радиус. Как то так.

Комментарий оставлен 05.12.2015 - 16:25

А это разве делается средствами Search API и Facet API ?
Насколько я знаю, этот функционал присутствует в Yandex maps.
И с помощью JS + JQuery можно с этой информацией работать на своем сайте.

Комментарий оставлен 05.12.2015 - 16:56

Да я все понемаю на Yandex maps у меня все работает, но нужно это и сделать в основной вюхе поиска, а то зачем тогда солр + у меня очень много нод, без солра никуда.

Комментарий оставлен 05.12.2015 - 17:02
0

Сам Solr подобные операции поддерживает (фильтр по расстоянию)..
https://wiki.apache.org/solr/SpatialSearch#geofilt_-_The_distance_filter

В "основном" модуле для Drupal (Apache Solr Search) подобных фильтров я не видел.
Возможно, нужный функционал предоставляют другие "вспомогательные" субмодули Apache Solr Search.
Или придется писать свой модуль, добавляющий нужный фильтр для модуля Apache Solr Search.

Ответ дан 06.12.2015 - 17:09

Можете, хоть на что то подтолкуть у виде хуков!

Комментарий оставлен 06.12.2015 - 17:57