ďťż
 
=?iso-8859-2?q?[MySQL]_FullText-Search_i_trafno=B6=E6_(zawsze_1)_i_szacowanie?= ďťż
 
=?iso-8859-2?q?[MySQL]_FullText-Search_i_trafno=B6=E6_(zawsze_1)_i_szacowanie?=
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

=?iso-8859-2?q?[MySQL]_FullText-Search_i_trafno=B6=E6_(zawsze_1)_i_szacowanie?=



=?iso-8859-2?B?RL95c3psYQ==?= - 24-06-2007 00:16
=?iso-8859-2?q?[MySQL]_FullText-Search_i_trafno=B6=E6_(zawsze_1)_i_szacowanie?=
  Od razu zastrzegam, że szukałem wszędzie i nie znalazłem.

Mam takie oto zapytanie:
SELECT *,MATCH (text) AGAINST ('wyraz*' IN BOOLEAN MODE) AS score FROM
posts WHERE MATCH (text) AGAINST ('wyraz*' IN BOOLEAN MODE) ORDER BY
time DESC LIMIT 0, 50

I teraz w wynikach mam ZAWSZE trafność (score) wynoszącą 1. Czy ja coś
źle sformuowałem? Jeśli nie określe warunków, to wyniki mam albo 0
albo 1.
Wersja MySQL - 4.1.21

I przy okazji - ma ktoś jakiś pomysł na oszacowanie ilości wyników
tak, aby nie trzeba było wywoływać czasochłonnego
SELECT COUNT(*) WHERE MATCH (text) AGAINST ('wyraz*' IN BOOLEAN MODE)





DeyV - 24-06-2007 00:16
=?iso-8859-2?q?Re:_FullText-Search_i_trafno=B6=E6_(zawsze_1)_i_szacowanie?=
  > I przy okazji - ma ktoś jakiś pomysł na oszacowanie ilości wyników
> tak, aby nie trzeba było wywoływać czasochłonnego
> SELECT COUNT(*) WHERE MATCH (text) AGAINST ('wyraz*' IN BOOLEAN MODE)

SQL_CALC_FOUND_ROWS tells MySQL to calculate how many rows there would
be in the result set, disregarding any LIMIT clause.
The number of rows can then be retrieved with SELECT FOUND_ROWS().

http://dev.mysql.com/doc/refman/5.0/...tml#FOUND_ROWS




Piotr Keplicz - 24-06-2007 00:16

  Dżyszla:
> I przy okazji - ma ktoś jakiś pomysł na oszacowanie ilości wyników
> tak, aby nie trzeba było wywoływać czasochłonnego
> SELECT COUNT(*) WHERE MATCH (text) AGAINST ('wyraz*' IN BOOLEAN MODE)

SELECT SQL_CALC_FOUND_ROWS *, MATCH() ...
a potem
SELECT FOUND_ROWS()

..pk.




Maciek Dobrzanski - 24-06-2007 00:16
=?iso-8859-2?Q?Re:_=5BMySQL=5D_FullText-Search_i_trafno=B6=E6_=28zawsze_1?==?iso-8859-2?Q?=29_i_szacowanie?=
  "Dżyszla" <dzyszla@dzyszla.aplus.pl> wrote in message
news:1182600300.850908.284250@n2g2000hse.googlegro ups.com...

> Mam takie oto zapytanie:
> SELECT *,MATCH (text) AGAINST ('wyraz*' IN BOOLEAN MODE) AS score
> FROM posts WHERE MATCH (text) AGAINST ('wyraz*' IN BOOLEAN MODE)
> ORDER BY time DESC LIMIT 0, 50
>
> I teraz w wynikach mam ZAWSZE trafność (score) wynoszącą 1. Czy ja
> coś źle sformuowałem? Jeśli nie określe warunków, to wyniki mam
> albo 0 albo 1.

Tryb BOOLEAN nieco inaczej "wylicza" trafność. W przeciwieństwie do
normalnego trybu, jest to hmmm... bardziej sucha ocena trafności konstrukcji
logicznej, niż zawartości według liczby wystąpień. Wartość 1 oznacza, że
jedna poszukiwana fraza (wyraz*), o którą pytasz, występuje w
przeszukiwanych kolumnach. Gdybyś szukał 'wyraza wyrazb' to możliwe wartości
wynosiły by 0, 1 lub 2, w zależności od tego ile z tych wyrazów pojawiłoby
się w "wierszu". Dla bardziej złożonych operacji obejmujących różne
operatory logiczne, przyjmowane wartości mogą być jeszcze nieco inne (tj.
mogą być liczbą wymierną a nie tylko całkowitą).

> I przy okazji - ma ktoś jakiś pomysł na oszacowanie ilości wyników
> tak, aby nie trzeba było wywoływać czasochłonnego

A tak bardzo Ci to potrzebne? Jeśli dokładna wartość liczby pasujących
rekordów nie jest konieczna, lepiej zastosować jakieś przybliżenie, a w
trakcie "przewijania" wyników dokonywać ewentualnych korekt.

Pozdrawiam,

Maciek





=?iso-8859-2?B?RL95c3psYQ==?= - 25-06-2007 00:00
=?iso-8859-2?q?Re:_FullText-Search_i_trafno=B6=E6_(zawsze_1)_i_szacowanie?=
  On 23 Cze, 20:59, Piotr Keplicz <kepl...@bigfoot.com> wrote:
> Dżyszla:
>
> > I przy okazji - ma ktoś jakiś pomysł na oszacowanie ilości wyników
> > tak, aby nie trzeba było wywoływać czasochłonnego
> > SELECT COUNT(*) WHERE MATCH (text) AGAINST ('wyraz*' IN BOOLEAN MODE)
>
> SELECT SQL_CALC_FOUND_ROWS, *, MATCH() ...
> a potem
> SELECT FOUND_ROWS()
>
> .pk.

Dzięki! Nie wiem czemu, ale gdzieś wcześniej wyczytałem, że to tak
samo obciąża, jak zwykłe wyszukiwanie (pomijając przekazanie wyników),
ale teraz zagłębiając się w manuala, to chyba też tak zalecają.
Ciekawe, jak google szacuje :) Bo podejrzewam, że w/w metoda jest
wolniejsza i tak od tej googlowskiej.




=?iso-8859-2?B?RL95c3psYQ==?= - 25-06-2007 00:00
=?iso-8859-2?q?Re:_FullText-Search_i_trafno=B6=E6_(zawsze_1)_i_szacowanie?=
  On 23 Cze, 22:17, "Maciek Dobrzanski" <svc.use...@posterus.com> wrote:
> "Dżyszla" <dzys...@dzyszla.aplus.pl> wrote in message
>
> news:1182600300.850908.284250@n2g2000hse.googlegro ups.com...
>
> > Mam takie oto zapytanie:
> > SELECT *,MATCH (text) AGAINST ('wyraz*' IN BOOLEAN MODE) AS score
> > FROM posts WHERE MATCH (text) AGAINST ('wyraz*' IN BOOLEAN MODE)
> > ORDER BY time DESC LIMIT 0, 50
>
> > I teraz w wynikach mam ZAWSZE trafność (score) wynoszącą 1. Czyja
> > coś źle sformuowałem? Jeśli nie określe warunków, to wynikimam
> > albo 0 albo 1.
>
> Tryb BOOLEAN nieco inaczej "wylicza" trafność. W przeciwieństwie do
> normalnego trybu, jest to hmmm... bardziej sucha ocena trafności konstrukcji
> logicznej, niż zawartości według liczby wystąpień. Wartość 1 oznacza, że
> jedna poszukiwana fraza (wyraz*), o którą pytasz, występuje w
> przeszukiwanych kolumnach. Gdybyś szukał 'wyraza wyrazb' to możliwewartości
> wynosiły by 0, 1 lub 2, w zależności od tego ile z tych wyrazów pojawiłoby
> się w "wierszu". Dla bardziej złożonych operacji obejmujących różne
> operatory logiczne, przyjmowane wartości mogą być jeszcze nieco inne (tj.
> mogą być liczbą wymierną a nie tylko całkowitą).
>
> > I przy okazji - ma ktoś jakiś pomysł na oszacowanie ilości wyników
> > tak, aby nie trzeba było wywoływać czasochłonnego
>
> A tak bardzo Ci to potrzebne? Jeśli dokładna wartość liczby pasujących
> rekordów nie jest konieczna, lepiej zastosować jakieś przybliżenie, a w
> trakcie "przewijania" wyników dokonywać ewentualnych korekt.
>
> Pozdrawiam,
>
> Maciek

Myślałem po prostu o opcji sortowania po trafności, gdzie by ta
trafność była określona w jakiś bardzo wymierny sposób. Dzięki za
wyjaśnienia niemniej!

Pozdrawiam
Dawid




=?iso-8859-2?B?RL95c3psYQ==?= - 25-06-2007 00:00
=?iso-8859-2?q?Re:_FullText-Search_i_trafno=B6=E6_(zawsze_1)_i_szacowanie?=
  On 23 Cze, 21:08, Piotr Keplicz <kepl...@bigfoot.com> wrote:
> Dżyszla:
>
> > I przy okazji - ma ktoś jakiś pomysł na oszacowanie ilości wyników
> > tak, aby nie trzeba było wywoływać czasochłonnego
> > SELECT COUNT(*) WHERE MATCH (text) AGAINST ('wyraz*' IN BOOLEAN MODE)
>
> SELECT SQL_CALC_FOUND_ROWS *, MATCH() ...
> a potem
> SELECT FOUND_ROWS()
>
> .pk.

Nie wiem czemu, ale wydawało mi się wcześniej, że wyczytałem, iż
metoda ta wiele się nie różni od COUNT(*) i tak samo obciąża... Ale
zagłębiając się w manuala to chyba jednak też tak zalecają. Dzięki!

Pozdrawiam
Dawid
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Gdzie MySQL 4.1, a gdzie 5.0? [MS SQL] "set names" (mySQL) w MS SQL oracle -> oracle lub oracle -> mysql replikacja - programy [mysql 4.0] SELECT t1.id, t1.foo FROM t1 oraz COUNT t2 w jednym zapytaniu. [MySQL] Zwrot tego, co pasuje i nie pasuje :-/ [pgsql] Dostosowanie składni MySQL 5.0 -> PGSQL 8.1 [mysql] galeria zdjec - numerowanie zdjec [MySQL] Zapytanie z pliku , wynik do pliku [mysql] CONCAT agregujący, ale nie GROUP_CONCAT() mysql data 0000-00-00 na koniec
  • 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