Użytkownik "Sławomir Szyszło" <slas...@CIACHTOlist.pl> napisał w wiadomości
news:j812m...@slaszyszCIACHTO.list.pl...
[...]
Z tych propozycji nadaje się CONTEXT index. W przykładzie jest na blobie,
ale działa varchar2. Robiłem testy na liku bez indeksów.
Po założeniu indeksu wydajność like wyraźnie spadła. Ale zapytania na
contains działają kilka razy szybciej. Przy bazie rzędu kilku milionów
rekordów to ma znaczenie. Contains działa inaczej niż like. Przy warunku :
WHERE CONTAINS( nazwisko, 'KOWAL') > 0
dostanę wszystkie rekordy gdzie występuje KOWAL jako całe słowo (np.
KOWAL-DŁUŻEC), ale KOWALSKI już nie. Być może to jest lepsze od '%KOWAL%',
ale to już użytkownicy będą oceniać. Nie bardzo wiem co daje Score(1) w
przykładach. Nie wiem też co można uzyskać trzecim parametrem w CONTAINS.
Przyglądałem się też CTXCAT indeksom, ale nie bardzo widzę na przykładzie
zastosowanie. Pomijając to, że jeszcze nie mam
GRANT EXECUTE ON CTX_DDL
(może jutro mi dadzą, a może spławią), to nie wiem jak by tam można bez
sztuczek dołożyć 2gi warunek na polu varchar2.
Z ampersandami widzę problemy, ale na razie przez te granty nie mogłem
testować.
Przy okazji - jak w poleceniu INSERT wstawić do pola vachar2 ampersand ?
Przyładu nie znalazłem, w faq nie widziałem.
Różne próby po jakichś "\" też mi nie zadziałały. To jakieś podstawy
pewnie, i taka zagwozdka.
Przykład z CTXRULE wygląda na inne przeznaczenie. Szukam prostego
wyszukiwania, głównie po polach testowych.
Przeważnie jedno lub dwa, rzadziej trzy. Że też nie ma czegoś takiego :
CREATE INDEX my_table_idx ON my_table( field1[, fieldN]) INDEXTYPE IS
GOOGLE; :)
Pozdrawiam,
Marek Horodyski