ďťż
 
[PostgreSQL] TSearch2, ispell i polskie ogonki ďťż
 
[PostgreSQL] TSearch2, ispell i polskie ogonki
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[PostgreSQL] TSearch2, ispell i polskie ogonki



Piotr Gasidlo - 13-11-2006 00:14
[PostgreSQL] TSearch2, ispell i polskie ogonki
  Witam,
Po przeczytaniu kilku poradników odnośnie TSearch2 postanowiłem zbudować
polski słownik.

Pobrałem:
http://www.kurnik.org/dictionary/alt...03-src.tar.bz2

Następnie przy pomocy iconv przekonwertowałem z iso-8859-2 na utf-8
pliki polish.all (lista słów) i polish.aff (regułki?) i zapisałem je
odpowiednio do plików polish.dict.utf8 i polish.aff.utf8.

Stworzyłem nową bazę danych:

Name | Owner | Encoding
----------+---------------+----------
quaker | quaker | UTF8

Następnie wykonałem:
insert into pg_ts_dict (
select 'pl_ispell', dict_init,
'DictFile="/home/quaker/ispell/polish.dict.utf8",AffFile="/home/quaker/ispell/polish.aff.utf8",StopFile="/home/quaker/ispell/polish.stop"',
dict_lexize
from pg_ts_dict where dict_name = 'ispell_template'
);

I wygląda, że wszystko działa, lecz tylko gdy nie ma polskich znaczków:

quaker=> select lexize('pl_ispell','automechanika'),lexize('pl_isp ell','automechanikowi'),lexize('pl_ispell','autome chaników');
lexize | lexize | lexize
----------------+----------------+--------
{automechanik} | {automechanik} |
(1 row)

Jak to przeskoczyć? System to UBuntu 6.06, wg. locale:

LANG=pl_PL.UTF-8
LANGUAGE=pl_PL:pl:en_GB:en
LC_CTYPE="pl_PL.UTF-8"
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME="pl_PL.UTF-8"
LC_COLLATE="pl_PL.UTF-8"
LC_MONETARY="pl_PL.UTF-8"
LC_MESSAGES="pl_PL.UTF-8"
LC_PAPER="pl_PL.UTF-8"
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
LC_IDENTIFICATION="pl_PL.UTF-8"
LC_ALL=

--
Piotr 'QuakeR' Gasidło, BOFH @ pandora.barbara.eu.org
############## sending lusers to /dev/null since 1998
##### Waiting for tomorrow, for a little ray of light
### Waiting for tomorrow just to see your smile again





Piotr Gasidlo - 13-11-2006 00:14

  On 2006-10-03, Piotr Gasidlo <quaker@pandora.barbara.eu.org> wrote:
(...)
> '...,StopFile="/home/quaker/ispell/polish.stop"',
(...)

Plik polish.stop też stworzyłem. Jest pusty.

--
Piotr 'QuakeR' Gasidło, BOFH @ pandora.barbara.eu.org
############## sending lusers to /dev/null since 1998
##### Waiting for tomorrow, for a little ray of light
### Waiting for tomorrow just to see your smile again




Piotr Gasidlo - 13-11-2006 00:14

  On 2006-10-03, Piotr Gasidlo <quaker@pandora.barbara.eu.org> wrote:
> quaker=> select lexize('pl_ispell','automechanika'),lexize('pl_isp ell','automechanikowi'),lexize('pl_ispell','autome chaników');
> lexize | lexize | lexize
> ----------------+----------------+--------
> {automechanik} | {automechanik} |
> (1 row)

Problem dotyczy obecności polskich znaków w sufiksie wyrazu, nie
w temacie:

quaker=> select lexize('pl_ispell','główny'),lexize('pl_ispell','g łówna');
lexize | lexize
----------+----------
{główny} | {główny}
(1 row)

Tutaj widać że wszystko działa jak należy.

--
Piotr 'QuakeR' Gasidło, BOFH @ pandora.barbara.eu.org
############## sending lusers to /dev/null since 1998
##### Waiting for tomorrow, for a little ray of light
### Waiting for tomorrow just to see your smile again




Bartek Siebab - 13-11-2006 00:16

  > Piotr Gasidlo w dniu 2006-10-03 15:55 pisze:

> Jak to przeskoczyć? System to UBuntu 6.06, wg. locale:
>
> LANG=pl_PL.UTF-8
> LANGUAGE=pl_PL:pl:en_GB:en
> LC_CTYPE="pl_PL.UTF-8"
> LC_NUMERIC="pl_PL.UTF-8"
> LC_TIME="pl_PL.UTF-8"
> LC_COLLATE="pl_PL.UTF-8"
> LC_MONETARY="pl_PL.UTF-8"
> LC_MESSAGES="pl_PL.UTF-8"
> LC_PAPER="pl_PL.UTF-8"
> LC_NAME="pl_PL.UTF-8"
> LC_ADDRESS="pl_PL.UTF-8"
> LC_TELEPHONE="pl_PL.UTF-8"
> LC_MEASUREMENT="pl_PL.UTF-8"
> LC_IDENTIFICATION="pl_PL.UTF-8"
> LC_ALL=
>

a jesteś w 100% przekonany że takie locale działają dobrze?
bo ja właśnie parę dni temu trafiłem na minę na FC5 z postgresql'em
przy sortowaniu robił bzdury i musiałem initdb puszczać
ponownie na zmienionych locale'ach na zwyczajne pl_PL bez UTF-8

--
..---------- -------- ------ ---- ---- --- - -- -
| Bartek `saphire` Siebab http://bartek.siebab.net





Piotr Gasidlo - 13-11-2006 00:44

  On 2006-10-08, Bartek Siebab <bs@vt.pl> wrote:
> > Piotr Gasidlo w dniu 2006-10-03 15:55 pisze:
>
>> Jak to przeskoczyć? System to UBuntu 6.06, wg. locale:
>>
>> LANG=pl_PL.UTF-8
>> LANGUAGE=pl_PL:pl:en_GB:en
>> LC_CTYPE="pl_PL.UTF-8"
>> LC_NUMERIC="pl_PL.UTF-8"
>> LC_TIME="pl_PL.UTF-8"
>> LC_COLLATE="pl_PL.UTF-8"
>> LC_MONETARY="pl_PL.UTF-8"
>> LC_MESSAGES="pl_PL.UTF-8"
>> LC_PAPER="pl_PL.UTF-8"
>> LC_NAME="pl_PL.UTF-8"
>> LC_ADDRESS="pl_PL.UTF-8"
>> LC_TELEPHONE="pl_PL.UTF-8"
>> LC_MEASUREMENT="pl_PL.UTF-8"
>> LC_IDENTIFICATION="pl_PL.UTF-8"
>> LC_ALL=
>>
>
> a jesteś w 100% przekonany że takie locale działają dobrze?

Tzn. nie wiem jak to sprawdzić na 100%. Pliki tworzone przez vim mają
pliterki w UTF-8, łącząć się zdalnie z takim systemem przez Putty muszę
właczyć Window | Translation z ISO-8859-2 na UTF-8.

> bo ja właśnie parę dni temu trafiłem na minę na FC5 z postgresql'em
> przy sortowaniu robił bzdury i musiałem initdb puszczać
> ponownie na zmienionych locale'ach na zwyczajne pl_PL bez UTF-8

Spróbuję więc dla pl_PL. Zobaczę co wyjdzie. Wzorowałem się na tym
dokumencie, w którym (dla de_DE.UTF-8) działało.

http://www.sai.msu.su/~megera/postgr...rman_utf8.html
i arykułom jak podłaczyć słownik aspell.

--
Piotr 'QuakeR' Gasidło, BOFH @ pandora.barbara.eu.org
############## sending lusers to /dev/null since 1998
##### Waiting for tomorrow, for a little ray of light
### Waiting for tomorrow just to see your smile again




Piotr Gasidlo - 13-11-2006 00:44

  On 2006-10-14, Piotr Gasidlo <quaker@pandora.barbara.eu.org> wrote:
>> a jesteś w 100% przekonany że takie locale działają dobrze?
> Spróbuję więc dla pl_PL. Zobaczę co wyjdzie. Wzorowałem się na tym
> dokumencie, w którym (dla de_DE.UTF-8) działało.
>
> http://www.sai.msu.su/~megera/postgr...rman_utf8.html
> i arykułom jak podłaczyć słownik aspell.

Miał być ispell.

Spróbowałem, wszędzie pl_PL, pg_controldata zwraca że klaster został
utworzony z lokalami pl_PL, LC_* ustawione wszędzie na pl_PL. Nadal ten
sam problem:

template1=# select
lexize('pl_ispell', 'żaba'),
lexize('pl_ispell','żaby'),
lexize('pl_ispell','głośnika'),
lexize('pl_ispell','głośników');

lexize | lexize | lexize | lexize
--------+--------+-----------+--------
{żaba} | {żaba} | {głośnik} |
(1 row)

A miało być tak pięknie ... :/

--
Piotr 'QuakeR' Gasidło, BOFH @ pandora.barbara.eu.org
############## sending lusers to /dev/null since 1998
##### Waiting for tomorrow, for a little ray of light
### Waiting for tomorrow just to see your smile again




Piotr Gasidlo - 13-11-2006 00:44

  On 2006-10-14, Piotr Gasidlo <quaker@pandora.barbara.eu.org> wrote:
> Spróbowałem, wszędzie pl_PL, pg_controldata zwraca że klaster został
> utworzony z lokalami pl_PL, LC_* ustawione wszędzie na pl_PL. Nadal ten
> sam problem:
>
> template1=# select
> lexize('pl_ispell', 'żaba'),
> lexize('pl_ispell','żaby'),
> lexize('pl_ispell','głośnika'),
> lexize('pl_ispell','głośników');
>
> lexize | lexize | lexize | lexize
> --------+--------+-----------+--------
> {żaba} | {żaba} | {głośnik} |
> (1 row)
>
> A miało być tak pięknie ... :/

Wycofuje. Coś musiałem pokręcić. Mam ;-)

lexize | lexize | lexize | lexize
--------+--------+-----------+-----------
{żaba} | {żaba} | {głośnik} | {głośnik}
(1 row)

--
Piotr 'QuakeR' Gasidło, BOFH @ pandora.barbara.eu.org
############## sending lusers to /dev/null since 1998
##### Waiting for tomorrow, for a little ray of light
### Waiting for tomorrow just to see your smile again
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [PostgreSQL] - jak =?ISO-8859-2?Q?zabezpieczy=E6_interesy_tw?==?ISO-8859-2?Q?=F3rcy_systemu_=3F=3F=3F?= postgresql - int/int postgresql Select count(*) czy raczej Select count(ID) [PostgreSQL] jak =?ISO-8859-2?Q?pobra=E6_warto=B6=E6_zwracan?==?ISO-8859-2?Q?=B1_przez_funkcj=EA=3F?= [postgresql] INSERT OR UPDATE - jak =?ISO-8859-2?Q?b=EAdzie_na?==?ISO-8859-2?Q?jlepiej=3F?= [postgresql] kilka =?ISO-8859-2?Q?rekord=F3w_subquery_jako_?==?ISO-8859-2?Q?string?= [PostgreSQL] Jak =?ISO-8859-2?Q?po=B3=B1czy=E6_funkcje_z_w?==?ISO-8859-2?Q?idokiem?= Postgres - replikcja master-master Dopasowanie do "najlepszego" dopasowania :) [ PostgreSQL] Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • morebeer.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com