ďťż
 
tsearch2 i pola do wyszukiwania ďťż
 
tsearch2 i pola do wyszukiwania
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

tsearch2 i pola do wyszukiwania



ErkA - 22-03-2007 00:06
tsearch2 i pola do wyszukiwania
  Witajcie ;)

nadrabiam w top20 :D, anyway udalo mi sie poprawnie uruchomic polski
slownik, jest troche ubogi (wazy ponad 3mb), ale dziala jak nalezy,
dzieki wszystkim za pomoc.

Mam teraz pytanie z innej beczki, mianowicie jesli ts liczy, na ktorej
pozycji jest dany wyraz, to co proponujecje zrobic w przypadku, jesli
mam nastepujace pola: tytul, zajawka, opis, slowa_kluczowe - wszystkie
slowa z tych pol chcialbym zindeksowac, pytanie co bedzie
efektywniejsze - zalozyc 4 dodatkowe vectory czy polaczyc te pola i
wrzucic do jednego vectora? Wydaje mi sie, ze w jednym worku strace
mozliwosc korzystania z np. headline bo pozycje nie beda sie zgadzaly,
choc z drugiej strony zakladac 4 dodatkowe vectory + informacje w
tabelach - czy to nie spowolni dzialania zapytan? Chcialbym umozliwic
wyszukiwanie rozbite tzn po tytule, zajawce. etc.. nie wiem jak to
porzadnie zaprojektowac.

Obecnie to wyglada tak - wszyskie pola z podstawowymi informacjami (w
tym tytul, zajawka, slowa kluczowe sa jednej tabeli, w drugiej zas mam
pote z konkretna trescia + vector)

CREATE TABLE produkty
(
id serial NOT NULL,
name_short character varying(128),
name_long character varying(255) NOT NULL DEFAULT
zajawka text NOT NULL,
keywords character varying(255) NOT NULL DEFAULT
c_netto numeric(10,2) NOT NULL DEFAULT 0.00,
c_brutto numeric(10,2) NOT NULL DEFAULT 0.00
(ciach inne pola)
);

CREATE TABLE produkty_opis
(
id serial NOT NULL,
pid integer NOT NULL,
opis text,
opis_search tsvector,
);

(opis i ustawienia musza byc w dwoch tabelach)

jeszcze jedno pytanie, czy ts poradzi sobie ze zliczaniem pozycji slow,
gdy bede vectorowal tresc z kodem HTML - czy najpierw tagi wyczyscic?

--
pozdrawiam serdecznie rafi

+++++++++++to++nie++jest++reklama++;)+++++++++++
www.BAZAREK.pl - DARMOWE SKLEPY INTERNETOWE,
Otwórz sklep online i zarabiaj-bez opłat, bez prowizji
++++++++++++++++++++++++++++++++++++++++++++++++





=?UTF-8?B?RmlsaXAgUmVtYmlhxYJrb3dza2k=?= - 28-03-2007 00:08

  ErkA wrote at 2007-03-21 13:21:
> Witajcie ;)
>
> nadrabiam w top20 :D, anyway udalo mi sie poprawnie uruchomic polski
> slownik, jest troche ubogi (wazy ponad 3mb), ale dziala jak nalezy,
> dzieki wszystkim za pomoc.
>
> Mam teraz pytanie z innej beczki, mianowicie jesli ts liczy, na ktorej
> pozycji jest dany wyraz, to co proponujecje zrobic w przypadku, jesli
> mam nastepujace pola: tytul, zajawka, opis, slowa_kluczowe - wszystkie
> slowa z tych pol chcialbym zindeksowac, pytanie co bedzie
> efektywniejsze - zalozyc 4 dodatkowe vectory czy polaczyc te pola i
> wrzucic do jednego vectora? Wydaje mi sie, ze w jednym worku strace
> mozliwosc korzystania z np. headline bo pozycje nie beda sie zgadzaly,
> choc z drugiej strony zakladac 4 dodatkowe vectory + informacje w
> tabelach - czy to nie spowolni dzialania zapytan? Chcialbym umozliwic
> wyszukiwanie rozbite tzn po tytule, zajawce. etc.. nie wiem jak to
> porzadnie zaprojektowac.

ja bym zaczął od _dokładnego_ określenia funkcjonalności wyszukiwarki.
ważne żeby domyślny/najczęstszy sposób wyszukiwania działał szybko.
jeśli np. domyślnym jest wyszukiwanie po wszystkich polach to pewnie najbardziej
wydajne będzie zagregowanie ich w jeden wektor, ewentualnie z wagami (A,B,C,D).
a jeśli domyślnie szukasz np. po tytule to warto zrobić dla niego osobny wektor.

z drugiej strony: każdy dodatkowy indeks to spowolnienie operacji
INSERT/UPDATE... zawsze będzie jakiś kompromis miedzy funkcjonalnościa a
zużyciem zasobów.
np. najszybsze dla tsvectorów są indeksy GIN ale za to są największe i chyba
najwolniejsze przy update'ach. krótko mówiąc musisz dokładnie rozważyć wszystkie
czynniki żeby podjąć decyzję.
niektóre czynniki to
- zakładana funkcjonalność
- "usage patterns"
- względna częstość operacji zmieniających dane
- dostępny hardware

>
> Obecnie to wyglada tak - wszyskie pola z podstawowymi informacjami (w
> tym tytul, zajawka, slowa kluczowe sa jednej tabeli, w drugiej zas mam
> pote z konkretna trescia + vector)
>
>
> CREATE TABLE produkty
> (
> id serial NOT NULL,
> name_short character varying(128),
> name_long character varying(255) NOT NULL DEFAULT
> zajawka text NOT NULL,
> keywords character varying(255) NOT NULL DEFAULT
> c_netto numeric(10,2) NOT NULL DEFAULT 0.00,
> c_brutto numeric(10,2) NOT NULL DEFAULT 0.00
> (ciach inne pola)
> );
>
>
> CREATE TABLE produkty_opis
> (
> id serial NOT NULL,
> pid integer NOT NULL,
> opis text,
> opis_search tsvector,
> );
>
> (opis i ustawienia musza byc w dwoch tabelach)
gdzie byś chciał przy takiej strukturze trzymać ten łączony (opis+zajawka+...)
tsvector? imo będziesz miał pewien problem z jego aktualizacją.

> jeszcze jedno pytanie, czy ts poradzi sobie ze zliczaniem pozycji slow,
> gdy bede vectorowal tresc z kodem HTML - czy najpierw tagi wyczyscic?
myślę że wyczyścić. jakoś tak:
opis_search := to_tsvector( ..., xml_to_text(opis) );

F.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Jak =?ISO-8859-2?Q?zamieni=E6_dwa_pola_jednej_kolumny_?==?ISO-8859-2?Q?w_dw=F3ch_rekordach_za_pomoc=B1_jednego_zapyt? ==?ISO-8859-2?Q?ania=3F?= [mysql] Wyszukanie =?ISO-8859-2?Q?rekord=F3w=28powiazane_tabel?==?ISO-8859-2?Q?e=29?= Jak =?ISO-8859-2?Q?pobra=E6_mo=BFliwe_warto=B6ci_z_pola_?==?ISO-8859-2?Q?typu_ENUM?= [MySQL] Jaki typ pola aby =?ISO-8859-2?Q?trzyma=E6_liczby_od?==?ISO-8859-2?Q?dzielone_przecinkiem_=3F?= [MySQL/PHP] Wyszukiwanie rekordu przez kolumnę wskazaną przez zmienną =?iso-8859-2?Q?[MS_SQL]Najcz=EAsciej_wyszukiwane_frazy?= Re: [mysql] wyszukiwanie =?ISO-8859-2?Q?ca=B3ych_hasel?= Oracle SQL Developer - Wyszukiwanie w calej bazie [PostgreSQL] wyszukiwanie przy sporej ilosci danych Wyszukiwanie "do daty" w zakresie dat i ID
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • kfia-tek.keep.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