No własnie nei było tego wcześniej już
Lecz na innym poscie znalałem kolesia który podobny miał problem czy u mnie moze byc to samo
"Juz mnie szlag trafia. Zaczalem przygode z full-text searching. Jednak zauwazylem, ze pomijane sa slowa, ktore maja 5 i mniej znakow. Zapytanie SHOW VARIABLES; pokazalo mi ft_min_word_len rowne 4. Dodalem do pliku /etc/my.cnf (w sekcji [mysqld] linie ft_min_word_len=1 (dla testow), po czym uruchomilem server mysql ponownie. SHOW VARIABLES pokazalo ft_min_word_len=1. OK. Wedle zalecen z manuala MySQL wykonalem takze polecenie REPAIR TABLE aktualnosci QUICK, ktore zakonczylo sie pomyslnie. No ale nadal wyszukiwanie pomija slowa krotsze niz 6 znakow. Co zrobic zeby szukalo od conajmniej 3 znakow?
"
I tam nie ma żadnej podanej wartości w kodzie

? ;/
Pewnie trzeba dopisać

?
Kurcze czy ktos zna jakieś rozwiązanie na to
ORYGINALNY KOD
// Wyszukiwanie produktów w katalogu
public function Search($searchString, $allWords, $pageNo, &$rTotalPages)
{
// utworzenie obiektu klasy SearchResults
$search_results = new SearchResults();
// znaki ograniczające ciągu tekstowego
$delimiters = ",.; ";
/* parametrami pierwszego wywołaniea funkcji strtok są:
pełny ciąg tekstowy wyszukiwania oraz lista znaków ograniczających;
funkcja zwraca pierwsze słowo ciągu */
$word = strtok($searchString, $delimiters); $accepted_words = array(); $ignored_words = array(); // analiza poszczególnych słów występujących w ciągu wyszukiwania
while ($word)
{
// krótkie słowa są dodawane do listy słów ignorowanych
if (strlen($word) < FT_MIN_WORD_LEN
) $ignored_words[] = $word;
else
$accepted_words[] = $word;
// pobranie kolejnego słowa z ciągu tekstowego wyszukiwania
}
// jeśli są jakiekolwiek zaakceptowane słowa...
if (count($accepted_words)) {
// pobranie wyników wyszukiwania - wywołanie metody Search warstwy danych
$search_results->mProducts = $this->mDoCatalog->Search
($accepted_words, $allWords, $pageNo, $rTotalPages);
}
// zapamiętanie listy zaakceptowanych słów i zignorowanych
if ($accepted_words != null)
$search_results->mSearchedWords = implode(", ", $accepted_words); if ($ignored_words != null)
$search_results->mIgnoredWords = implode(", ", $ignored_words); // zwrócenie wyników
return $search_results;
PRZEROBIONY KOD i NIE DZIAŁA
// Wyszukiwanie produktów w katalogu
public function Search($searchString, $allWords, $pageNo, &$rTotalPages)
{
// utworzenie obiektu klasy SearchResults
$search_results = new SearchResults();
// znaki ograniczające ciągu tekstowego
$delimiters = ",.; ";
/* parametrami pierwszego wywołaniea funkcji strtok są:
pełny ciąg tekstowy wyszukiwania oraz lista znaków ograniczających;
funkcja zwraca pierwsze słowo ciągu */
$word = strtok($searchString, $delimiters); $accepted_words = array(); $ignored_words = array(); // analiza poszczególnych słów występujących w ciągu wyszukiwania
while ($word)
{
// krótkie słowa są dodawane do listy słów ignorowanych
if (strlen($word) == 2
< FT_MIN_WORD_LEN
) $ignored_words[] = $word;
else
$accepted_words[] = $word;
// pobranie kolejnego słowa z ciągu tekstowego wyszukiwania
}
// jeśli są jakiekolwiek zaakceptowane słowa...
if (count($accepted_words)) {
// pobranie wyników wyszukiwania - wywołanie metody Search warstwy danych
$search_results->mProducts = $this->mDoCatalog->Search
($accepted_words, $allWords, $pageNo, $rTotalPages);
}
// zapamiętanie listy zaakceptowanych słów i zignorowanych
if ($accepted_words != null)
$search_results->mSearchedWords = implode(", ", $accepted_words); if ($ignored_words != null)
$search_results->mIgnoredWords = implode(", ", $ignored_words); // zwrócenie wyników
return $search_results;
ZAPOMNIAŁEM DOPISAĆ KTÓRĄ linijkę zmieniłem

#if (strlen($word) == 2 < FT_MIN_WORD_LEN )
I nie działa jak wrzucam na serwer plik *.php przerobiony mam błąd na stronie ;(