Re: индексирование по расстоянию

From: "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org>
To: Sergey Konoplev <gray(dot)ru(at)gmail(dot)com>
Cc: pgsql-ru-general <pgsql-ru-general(at)postgresql(dot)org>
Subject: Re: индексирование по расстоянию
Date: 2014-05-09 21:34:32
Message-ID: 20140509213432.GN15103@vdsl.uvw.ru
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-ru-general

>> Сейчас залез копаться в GIST-индексы и расширения на C, но возник
>> вопрос, может быть уже что-то готовое есть на тему решения подобных
>> задач?
>> то есть если у нас есть функция возвращающая дистанцию между двумя
>> объектами, то может быть можно просто (без C-программирования)
>> построить индекс отвечающий на
>> вопрос "дай мне ближайшие объекты к заданному"?

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

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

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

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

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

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

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

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

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

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

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

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

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

In response to

Responses

Browse pgsql-ru-general by date

  From Date Subject
Next Message Sergey Konoplev 2014-05-09 21:54:17 Re: [pgsql-ru-general] индексирование по расстоянию
Previous Message Sergey Konoplev 2014-05-09 21:02:19 Re: [pgsql-ru-general] индексирование по расстоянию