![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 10.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Chciałem wykorzystać funkcje MATCH() AGAINST() do wyszukiwania ciągu znaków. Założona została tabela:
Następnie zostały dodane rekordy (polu treść został wpisany tekst zawierający słowo artykul) Po wykonaniu polecenia
baza nie zwraca wyników. Dodam, że po zastosowaniu
baza zwraca wyniki prawidłowo |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Słowo nie zostanie wyszukane jeżeli występuję we więcej niż 50% wszystkich rekordów tabeli. Dodaje kolejne 2 rekordy nie związane ze słowem "artykuł" a będzie OK
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 10.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Niestety wookieb ma rację. jednym z ograniczeń MATCH AGAINST jest częstotliwość występowania słowa, ale są nim także za krótkie wyrazy (domyślnie musi być podany 3 lub 4 literowy). W takich wypadkach masz zafałszowany wynik i konieczne jest sprawdzenie dodatkowe z użyciem LIKE. Dopiero brak wyników w tym wypadku pozwala dość jednoznacznie stwierdzić, że nie ma nic w bazie na ten temat. Niestety taki wpływ na wyszukiwanie maja bardzo popularne frazy. Zapoznaj się z algorytmem wyszukiwania bazy a sam zobaczysz jak to działa "od kuchni". Brane jest wiele czynników pod uwagę przy określaniu trafności.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 10.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za wyjaśnienia. Temat uważam za zamknięty.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 10:06 |