Andrzej Dybionka

Andrzej Dybionka Full Stack Developer

Temat: Wyszukiwanie pełnotekstowe w Mysql i PHP

Witam.
Znacie jakiś gotowy silnik (godny polecenia) do wyszukiwania pełnotekstowego w mysql który można bez problemu użyć w php, tak aby wyszukiwał również wyrazy dwu i trzy znakowe (w przeciwieństwie do indeksu FULLTEXT w Mysql).
Albo czy idzie zmusić wyszukiwanie pełnotekstowe w mysql do szukania wyrazów 2 i 3 znakowych (bez zabawy z like)?

I jak sprawdzić czy np. jakiś tytuł artykułu nie jest podobny do istniejącego już w bazie w jakimś określonym procencie ? Tak aby przy dodawaniu nowego sprawdzać czy już coś podobnego nie istnieje i informować użytkownika o tym aby nie dodał drugi raz tego samego.
Robert B.

Robert B. Web Development
Manager

Temat: Wyszukiwanie pełnotekstowe w Mysql i PHP

Andrzej Dybionka:
Witam.
Znacie jakiś gotowy silnik (godny polecenia) do wyszukiwania pełnotekstowego w mysql który można bez problemu użyć w php, tak aby wyszukiwał również wyrazy dwu i trzy znakowe (w przeciwieństwie do indeksu FULLTEXT w Mysql).
Albo czy idzie zmusić wyszukiwanie pełnotekstowe w mysql do szukania wyrazów 2 i 3 znakowych (bez zabawy z like)?
Zmienia się to w konfiguracji bazy danych:
[mysqld]
ft_min_word_len = 3

[myisamchk]
ft_min_word_len = 3

I jak sprawdzić czy np. jakiś tytuł artykułu nie jest podobny do istniejącego już w bazie w jakimś określonym procencie ? Tak aby przy dodawaniu nowego sprawdzać czy już coś podobnego nie istnieje i informować użytkownika o tym aby nie dodał drugi raz tego samego.
hm... łatwo to chyba nie można (i do tego automatycznie). Google chciało chyba kiedyś wprowadzić wykrywanie duplicated content, ale nie wiem czy to w końcu wprowadzili.
Piotr Maliński

Piotr Maliński Programista
Python/Django

Temat: Wyszukiwanie pełnotekstowe w Mysql i PHP

MySQL ma pewne wsparcie dla pełnotekstowego szukania, choć na większą skalę w bazie tego nie zrobisz (użyj wtedy sphinxa)
http://www.php.rk.edu.pl/w/p/pelnotekstowe-wyszukiwanie/ :)
Andrzej Dybionka

Andrzej Dybionka Full Stack Developer

Temat: Wyszukiwanie pełnotekstowe w Mysql i PHP

Robert Boguszewski:

Zmienia się to w konfiguracji bazy danych:
[mysqld]
ft_min_word_len = 3

[myisamchk]
ft_min_word_len = 3

Dzięki bardzo o to mi właśnie chodziło :) Moja wyszukiwarka już działa i już wyszykuje mi 2 i 3 znakowe wyrazy (a było to ważne aby znajdować produkty firm np. HP, JVC).
Teraz to z znajdowaniem podobnych sobie poradzę bo MySQL zwraca wagę podobieństwa :PAndrzej Dybionka edytował(a) ten post dnia 24.03.09 o godzinie 15:33

konto usunięte

Temat: Wyszukiwanie pełnotekstowe w Mysql i PHP

Mozesz jeszcze rzucic okiem na to

http://www.sphinxsearch.com/

konto usunięte

Temat: Wyszukiwanie pełnotekstowe w Mysql i PHP

Możesz również zacząć indeksować swoje dane do plików tekstowych, używając np. Xapian-a lub Zend_Search_Lucene

konto usunięte

Temat: Wyszukiwanie pełnotekstowe w Mysql i PHP

Tadeusz W.:
Mozesz jeszcze rzucic okiem na to

http://www.sphinxsearch.com/

Zgadzam sie.

Najlepsze mozliwe wyjscie.
Jarosław Czub

Jarosław Czub FullStack Developer

Temat: Wyszukiwanie pełnotekstowe w Mysql i PHP

I sphinxsearch jest dużo bardziej wydajniejszy od FTS mysql'a od kilku do kilkunastu razy.
Szymon Kosok

Szymon Kosok Właściciel,
Webrevolution.pl

Temat: Wyszukiwanie pełnotekstowe w Mysql i PHP

Też polecam Sphinx'a. Używam go w Wonderlife, z tym, że jako backend mam Postgres i bibliotekę w Pythonie, ale to większej różnicy nie robi. ;)
Kamil Szot

Kamil Szot PHP, JavaScript -
rozwiązywanie
problemów.
limeline.pl

Temat: Wyszukiwanie pełnotekstowe w Mysql i PHP

Tadeusz W.:
Mozesz jeszcze rzucic okiem na to

http://www.sphinxsearch.com/

Znacie może jakiś polski stemmer (obcinacz końcówek wyrazów) do sphinx-a tak żeby można było wyszukiwć słowa bez względu na ich formę gramatyczną?
Maciej Liżewski

Maciej Liżewski współwłaściciel, 3e
Software House &
Interactive Agency

Temat: Wyszukiwanie pełnotekstowe w Mysql i PHP

Kamil Szot:
Znacie może jakiś polski stemmer (obcinacz końcówek wyrazów) do sphinx-a tak żeby można było wyszukiwć słowa bez względu na ich formę gramatyczną?

a no wlasnie - kolega dotknal sedna... ktos zna taki? bo ja ostatnio sporo szukam (a minely juz 2 lata od powyższej dyskusji :)) i wychodzi mi, ze pozostaje SOLR (do ktorego da sie podpiac hunspela i slowniki z OpenOffice'a), albo... FTS Postgresa, ktoremu mozna podlaczyc polski slownik (ispell): http://www.depesz.com/index.php/2008/04/22/polish-tsea...

czy ktos zna jakies inne alternatywy? generalnie panuje jakas posucha w kwestii polskiego stemmera (czeski i rosyjski jak najbardziej :) ), a bez niego cala idea sprawnego wyszukiwania pada. Co mi z tego, ze sphinx jest 10 razy szybszy niz FTS w bazie, skoro jak będę szukać słowa "jajka", to nie znajdzie mi tekstu "co było pierwsze: jajko czy kura?"... do tego własnie potrzebny jest stemmer.

W świetle powyższego: polecam tsearch z polskim slownikiem. sprawdzalem - dziala calkiem niezle. przyklad z jajkiem zaliczyl :)Maciej Liżewski edytował(a) ten post dnia 04.01.12 o godzinie 13:43

konto usunięte

Temat: Wyszukiwanie pełnotekstowe w Mysql i PHP

http://www.getopt.org/stempel/#distrib
Kamil Szot

Kamil Szot PHP, JavaScript -
rozwiązywanie
problemów.
limeline.pl

Temat: Wyszukiwanie pełnotekstowe w Mysql i PHP

Marcin W.:
http://www.getopt.org/stempel/#distrib

Stempel jest w javie dlatego stosunkowo łatwo można go podpiąć do SOLR-a i radzi sobie tam bardzo dobrze.

Nie orientuję się jak wygląda to w SPHINXie. Czy tam można podłączyć javovy stemmer? Teoretycznie jest źródełko więc można by nawet sportować to z Javy do C++ jeżeli byłoby to potrzebne ale to już trochę więcej roboty.



Wyślij zaproszenie do