Re: RE: [pgsql-ru-general] hstore - релевантность

From: Oleg Bartunov <oleg(at)sai(dot)msu(dot)su>
To: Ilia Kantor <ilia(at)obnovlenie(dot)ru>
Cc: pgsql-ru-general(at)postgresql(dot)org
Subject: Re: RE: [pgsql-ru-general] hstore - релевантность
Date: 2005-11-07 19:25:31
Message-ID: Pine.GSO.4.63.0511072206470.29329@ra.sai.msu.su
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-ru-general

On Mon, 7 Nov 2005, Ilia Kantor wrote:

>
> А что насчет tsearch2 ?
>
> Допустим, я хочу найти документы по словам "моя мама мыла раму".
> Хочу получить сначала точные совпадения, потом "мама мыла раму", "моя мыла
> раму",..., потому "мыла раму", отсортированные по релевантности.
> Скажем, первые 100 записей.

ты определись с запросом сначала, а потом спрашивай. Судя по всему, ты хочешь
"моя OR мама OR мыла OR раму" и релевировать документы ты хочешь по
кол-ву попаданий слов. Сразу скажу, что порядо слов для нас не важен, так
что если ты хочешь фразу поискать, то пользуй совет Mike Rylander
http://www.sai.msu.su/~megera/oddmuse/index.cgi/Tsearch_V2_Notes

В 8.1 уже новая фукнция релевантности для OR запросов, которая сильно
лучше учитывает то, что ты хочешь. Но для 8.2 мы пишем сильно улучшенную
функцию релевантности, так что наберитесь терпения или реально помогите.

>
> Будет ли сделана
> 1) выборка всех сколько-нибудь релевантных документов (например 1000000),
> затем сортировка их всех (плохой вариант)
> 2) выборка наиболее релевантных документов (100) сразу, согласно индексу,
> без сортировки.

Посмотри план запроса :) Чудес не бывает, текущая реализация LIMIT в
постгресе так написана, что все равно сортируются все результаты, а потом
просто выдается необходимый кусок.

>
> Насколько, вообще, используемые tsearch2 алгоритмы близки современным
> поисковым движкам: yandex/google... ?

Кто их точно знает, что у них работает :) В статьях можно много чего написать.
Уточни, какие алгоритмы ты имеешь ввиду ?
Алгоритмы индексирования - точно
разные из-за разного хранилища и разных целей. Лингвистика ? У нас есть
поддержка морфологии,стеминга и стоп-слов. Язык запросов ? У нас весьма
богатый ? Алгоритмы поиска ? У нас прямой индекс и реляционное хранилище,
поэтому сравнивать нечего. Алгоритмы релевации ? У нас нет заточенного
парсера для html документов, но есть поддержка классов лексем, есть нормировка
на длину документа, есть координатная информация (proximity).
Вы можете все это прочитать в документации и в Wiki
http://www.sai.msu.su/~megera/oddmuse/index.cgi/Tsearch2

Хочу напомнить наш TODO
http://www.sai.msu.su/~megera/oddmuse/index.cgi/todo
Все остальное будет иметь низкуй приоритет, если только оно не будет
подкреплено весомыми аргументами :)

Мы сейчас работает над UTF-8 поддержкой, что есть само по себе серьезная задача.
Ищем спонсора для "improving scalability". Если есть желание помочь, то
в добрый путь - исходники перед вами.

PS.
В следущий раз постарайся быть поконкретнее. На просто ля-ля нет времени.

Regards,
Oleg
_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg(at)sai(dot)msu(dot)su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83
>From pgsql-ru-general-owner(at)postgresql(dot)org Tue Nov 8 08:25:51 2005
X-Original-To: pgsql-ru-general-postgresql(dot)org(at)localhost(dot)postgresql(dot)org
Received: from localhost (av.hub.org [200.46.204.144])
by svr1.postgresql.org (Postfix) with ESMTP id E44B4D770D
for <pgsql-ru-general-postgresql(dot)org(at)localhost(dot)postgresql(dot)org>; Tue, 8 Nov 2005 08:25:49 -0400 (AST)
Received: from svr1.postgresql.org ([200.46.204.71])
by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024)
with ESMTP id 70350-01
for <pgsql-ru-general-postgresql(dot)org(at)localhost(dot)postgresql(dot)org>;
Tue, 8 Nov 2005 12:25:46 +0000 (GMT)
X-Greylist: from auto-whitelisted by SQLgrey-
Received: from xor.sai.msu.ru (xor.sai.msu.ru [212.192.243.97])
by svr1.postgresql.org (Postfix) with ESMTP id 8AEF4D7709
for <pgsql-ru-general(at)postgresql(dot)org>; Tue, 8 Nov 2005 08:25:48 -0400 (AST)
Received: from [127.0.0.1] (localhost [127.0.0.1])
by xor.sai.msu.ru (Postfix) with ESMTP id 78CE517069;
Tue, 8 Nov 2005 15:25:51 +0300 (MSK)
Message-ID: <4370994F(dot)20502(at)sigaev(dot)ru>
Date: Tue, 08 Nov 2005 15:25:51 +0300
From: Teodor Sigaev <teodor(at)sigaev(dot)ru>
User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.12) Gecko/20050927
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: Ilia Kantor <ilia(at)obnovlenie(dot)ru>
Cc: pgsql-ru-general(at)postgresql(dot)org
Subject: Re: GIST =?UTF-8?B?0LTQu9GPIGhzdG9yZS90c2VhcmM=?=
References: <auto-000589511149(at)umail(dot)ru>
In-Reply-To: <auto-000589511149(at)umail(dot)ru>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Virus-Scanned: by amavisd-new at hub.org
X-Spam-Status: No, score=0.842 required=5 tests=[AWL=-0.701,
SUBJECT_ENCODED_TWICE=1.543]
X-Spam-Score: 0.842
X-Spam-Level:
X-Archive-Number: 200511/10
X-Sequence-Number: 447

Ilia Kantor wrote:
> п²п╟я│п╨п╬п╩я▄п╨п╬ я▐ п©п╬п╫я▐п╩, п╨п╩я▌я┤п╣п╡п╬п╧ п╪п╬п╪п╣п╫я┌ п╡ GIST Б─⌠ я┘я─п╟п╫п╣п╫п╦п╣ п╠п╩п╦п╥п╨п╦я┘ п╥п╫п╟я┤п╣п╫п╦п╧
> п╠п╩п╦п╥п╨п╬.
пёпЁя┐

>
> п╒.п╣ INSERT п©я─п╦ п©п╬п╪п╬я┴п╦ penalty п╡я▀п╠п╦я─п╟п╣я┌ я│п╟п╪п╬п╣ Б─°п╠п╩п╦п╥п╨п╬п╣Б─² п╥п╫п╟я┤п╣п╫п╦п╣ п╦
> п╡я│я┌п╟п╡п╩я▐п╣я┌ я┌я┐п╢п╟.
пёпЁя┐-2

> п п╟п╨п╦п╪ п╬п╠я─п╟п╥п╬п╪ я─п╣п╟п╩п╦п╥я┐п╣я┌я│я▐ penalty/union п╡ hstore/tsearch2 ?
>

Union - п©п╬п╠п╦я┌п╬п╡п╬п╣ OR

penalty - п╡ п╬п╠я┴п╣п╪ я│п╩я┐я┤п╟п╣ п©п╬п╨п╟п╥я▀п╡п╟п╣я┌ п╫п╟я│п╨п╬п╩я▄п╨п╬ п╦п╥п╪п╣п╫п╦я┌я▄я│я▐ п╫п╣п╨п╟я▐ п╪п╣я─п╟ п©я─п╦ union
я│я┌п╟я─п╬пЁп╬ п╨п╩я▌я┤п╟ я│ п╫п╬п╡я▀п╪. п■п╩я▐ R-tree - п╦п╥п╪п╣п╫п╣п╫п╦п╣ п©п╩п╬я┴п╟п╢п╦ bounding box. п■п╩я▐
tsearch2/hstore - п©я─п╬я│я┌п╬ я─п╟я│я│я┌п╬я▐п╫п╦п╣ п╔п╣п╪п╪п╦п╫пЁп╟ п╪п╣п╤п╢я┐ п╫п╬п╡я▀п╪ п╨п╩я▌я┤п╬п╪ п╦ я│я┌п╟я─я▀п╪. п╜я┌п╬
п╪п╣я─п╟ п╠я▀п╩п╟ п╡я▀п╠я─п╟п╫п╟ п╦п╥ п╫п╣я│п╨п╬п╩я▄п╨п╦я┘ п©п╬ я─п╣п╥-я┌п╟я┌п╟п╪ я█п╨я│п©п╣я─п╦п╪п╣п╫я┌п╬п╡.

> п▓ п╦я│я┘п╬п╢п╫п╦п╨п╟я┘ п╦я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ я└я┐п╫п╨я├п╦я▐ hemdist.. п▓п╬п╥п╪п╬п╤п╫п╬, п╡ п╢п╣п╩п╣ п╥п╟п╪п╣я┬п╟п╫п╟
> п╢п╦я│я┌п╟п╫я├п╦я▐ п╔я█п╪п╪п╦п╫пЁп╟..
>
> п²п╬ п©п╬я┤п╣п╪я┐ п╬п╫п╟ п╡я▀я┤п╦я│п╩я▐п╣я┌я│я▐ п©п╬п╠п╦я┌п╫п╬ ?..

п≤п╪п╣п╫п╫п╬ п╦п╪п╣п╫п╫п╬, я─п╟п╥п╫п╬п╡п╦п╢п╫п╬я│я┌я▄ п╢п╦я│я┌п╟п╫я├п╦п╦ п╔я█п╪п╪п╦п╫пЁп╟. п⌠я─я┐п╠п╬ пЁп╬п╡п╬я─я▐, XOR'п╦п╪ п╢п╡п╟ п╨п╩я▌я┤п╟
п╦ я│я┤п╦я┌п╟п╣п╪ п╨п╬п╩-п╡п╬ п╣п╢п╦п╫п╦я┤п╣п╨ п╡ я─п╣п╥я┐п╩я▄я┌п╟я┌п╣. п╒.п╣. п╡ я█я┌п╦я┘ п╪п╬п╢я┐п╩я▐я┘ п╫я┐п╩п╣п╡п╬п╣ я─п╟я│я│я┌п╬я▐п╫п╦п╣
п╦п╪п╣я▌я┌ п╬п╢п╦п╫п╟п╨п╬п╡я▀п╣ п╨п╩я▌я┤п╦.

> п╒.п╣ я┤я┌п╬ я┌п╟п╪ п©я─п╬п╦я│я┘п╬п╢п╦я┌-я┌п╬ я┌п╬п╩п╨п╬п╪, п╦ п©п╬я┤п╣п╪я┐ п╬п╫п╬ я─п╟п╠п╬я┌п╟п╣я┌ ?!? ;)

п≤ tsearch2 п╦ hstore п╦я│п©п╬п╩я▄п╥я┐я▌я┌ Signature tree - п╢п╣я─п╣п╡п╬ п╠п╦п╫п╟я─п╫я▀я┘ я│п╦пЁп╫п╟я┌я┐я─.
пёп╨п╟п╥п╟я┌п╣п╩я▄ п╫п╟ я│я┌я─п╟п╫п╦я├я┐ п╦п╪п╣п╣я┌ п©п╬п╠п╦я┌п╬п╡я▀п╧ OR п╡я│п╣я┘ п╨п╩я▌я┤п╣п╧ п╫п╟ я│я┌я─п╟п╫п╦я├п╣.

--
Teodor Sigaev E-mail: teodor(at)sigaev(dot)ru
WWW: http://www.sigaev.ru/

In response to

Browse pgsql-ru-general by date

  From Date Subject
Next Message Serik 2005-11-10 19:24:33 srpm для SuSE 10
Previous Message Ilia Kantor 2005-11-07 18:15:45 RE: [pgsql-ru-general] hstore - релевантность