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
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] индексирование по расстоянию |