Re: индексирование по расстоянию - Mailing list pgsql-ru-general

From Dmitry E. Oboukhov
Subject Re: индексирование по расстоянию
Date
Msg-id 20140509213432.GN15103@vdsl.uvw.ru
Whole thread Raw
In response to Re: [pgsql-ru-general] индексирование по расстоянию  (Sergey Konoplev <gray.ru@gmail.com>)
List pgsql-ru-general
>> Сейчас залез копаться в GIST-индексы и расширения на C, но возник
>> вопрос, может быть уже что-то готовое есть на тему решения подобных
>> задач?
>> то есть если у нас есть функция возвращающая дистанцию между двумя
>> объектами, то может быть можно просто (без C-программирования)
>> построить индекс отвечающий на
>> вопрос "дай мне ближайшие объекты к заданному"?

> Есть кое-какие наработки в этом направлении:

> http://www.postgresql.org/message-id/flat/9E07E159-E405-41E2-9889-A04F534FC257@gmail.com#

А я чет почитал про этот kNN но не понял как совместить его с моей
задачей. у меня на входе текстовые сопоставления и координатные.
и итоговое сопоставление опирается на оба сопоставления сразу

> А какая предметная область, если не секрет, что за данные и для чего
> дистанция? Возможно есть проще решение.

предметная область - объекты с текстовыми характеристиками в
пространстве (на глобусе).

То есть объект имеет:
 - название
 - текстовое описание
 - lon
 - lat

Пользователь отчасти помнит название (или текстовое описание) объекта
и начинает его вводить в поисковом поле.

Мы хотим налету подсказывать ему объекты в виде автокомплит-списка.

сперва сделали чисто подсказки по тексту - получилось довольно
неплохо, но автокомплит комплитит и сильно далекие точки от юзера.

далее попробовали совмещать комплит с географией.
но получается если сперва текстовый индекс поюзать, а потом
сортировать по удаленности, то получаются большие накладные расходы,
если например юзер вводит популярное название объекта.

далее если наоборот - сперва выбирать ближайшие объекты в заданном
радиусе, а потом отфильтровывать их по текстовой похожести, то
получаются большие накладные расходы если юзер ищет объект в скоплении
других объектов (например улицу в Москве). ну и вот далее хочется
совместить оба критерия в один индекс: и текстовую близость и близость
по расстоянию

причем текстовую близость мы считаем по своим критериям.
--

. ''`.                               Dmitry E. Oboukhov
: :’  :   email: unera@debian.org jabber://UNera@uvw.ru
`. `~’              GPGKey: 1024D / F8E26537 2006-11-21
  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537

Attachment

pgsql-ru-general by date:

Previous
From: Sergey Konoplev
Date:
Subject: Re: [pgsql-ru-general] индексирование по расстоянию
Next
From: Sergey Konoplev
Date:
Subject: Re: [pgsql-ru-general] индексирование по расстоянию