Как `@ geodist` сортировка / поиск реализована в Sphinx? - PullRequest
3 голосов
/ 27 января 2011

Использует ли поиск @geodist какие-либо геопространственные индексы (например, R-деревья) для повышения производительности?

Меня интересует случай, когда привязка постоянна, и у каждого документа есть своя пара широта / долгота, хранящаяся в радианах.

Я пытался выяснить это из исходного кода Sphinx, но не смог найти упоминаний о каком-либо пространственном индексе. Если для геопространственного поиска индексы не используются, то как обеспечивается производительность?

Сфинкс выполняет полное сканирование, если не указаны ключевые слова?

Справочная информация. У нас есть набор данных, содержащий более 100 миллионов коротких записей. Некоторые из недавно добавленных элементов будут храниться в широте / долготе. Миллионы записей добавляются каждый день. Я предполагаю, что около 5-10% вновь добавленных записей будут иметь информацию о местоположении.

Наша цель - реализовать пространственный поиск записей с поддержкой местоположения для запросов типа «получить все записи в радиусе 100 метров вокруг точки привязки», «получить 100 ближайших записей вокруг точки привязки» с поиском по ключевым словам и без него.

Некоторые поисковики вернули эту ветку форума , в которой предлагается использовать искусственный индекс на основе сетки для обеспечения производительности. Это все еще так?

1 Ответ

0 голосов
/ 28 ноября 2011

Нет, sphinx не имеет встроенной геопространственной индексации - отсюда и причина плиток (для создания рудиментарного геопространственного индекса :)СканированиеЭто на удивление быстро, потому что все атрибуты хранятся в памяти.

Проверьте источник: http://codesearch.google.com/#vqMBzkK4ih0/src/sphinxexpr.cpp&exact_package=git://github.com/squadette/sphinxsearch.git&q=cos%20sphinxsearch&type=cs&l=1186

Последняя тема обсуждает это на форуме sphinx http://sphinxsearch.com/forum/view.html?id=8644

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...