/ / Jak wyszukiwać pełny tekst z dopasowaniami częściowymi? - php, mysql, baza danych, wyszukiwanie pełnotekstowe

Jak wyszukać pełny tekst z częściowymi dopasowaniami? - php, mysql, baza danych, wyszukiwanie pełnotekstowe

Mam tabelę z niewielką liczbą wierszy i bez wielu kolumn. Przeprowadzam wyszukiwanie pełnotekstowe w 3 kolumnach.

Mój kod jest

$search_input = trim($_GET["s"]);
$search = mysql_real_escape_string($search_input);
$search = "+".str_replace(" ", "* +", $search)."*";

$sql = "SELECT * FROM table WHERE
MATCH(def, pqr, xyz) AGAINST ("$search" IN BOOLEAN MODE)";

$result = mysql_query($sql);

Mogę poprawnie wyszukiwać hasła takie jak abcdefgh, które są obecne jako ... abcdefgh ....

Ale otrzymuję pusty zestaw z wyszukiwanymi hasłami, takimi jak ABC, gdzie we wpisie tabeli jest coś podobnego abc-123, a także terminy takie jak abcdefghs. (zauważ, że jest to liczba mnoga powyżej)

Oczywiście muszę wdrożyć częściowe wyszukiwanie lub coś w tym rodzaju.
Ale jak zaimplementować takie wyszukiwanie? Czy jest lepszy sposób na przeszukiwanie całej tabeli na podstawie danych wprowadzonych przez użytkownika?

Wspominaj wszystko, co robię niepoprawnie.

EDYTOWAĆ : Dodając * po każdym słowie, teraz mogę także wyszukiwać abcde, ale powyższe problemy pozostają.

Odpowiedzi:

1 dla odpowiedzi № 1

Czy masz na myśli, że nie otrzymujesz wyników dla kombinacji 3 liter? Jeśli tak, być może osiągasz długość indeksu mysql (który zwykle jest ustawiony na 3)

Więcej informacji tutaj - http://dev.mysql.com/doc/refman/5.1/en/fulltext-fine-tuning.html