Witam,
Chciałbym się dowiedzieć o wasze opinie na pewien temat:
Mam 12k plików, po średnio 4k wyrazów, chciałbym zrobić witrynę wyszukującą frazy i słowa w tych plikach. (baza będzie się powiększać ok 2000 plików rocznie, dane nie będą aktualizowane w czasie rzeczywistym - tylko ręcznie, raz dziennie)
Myślałem nad przeniesieniem wszystkich plików (jako tekstu lub html) do bazy MySQL i zrobieniu wyszukiwarki w PHP, tu pojawia się moja wątpliwość co do wydajności tego rozwiązania.
1. Czy zapytania fulltext w MySQL na hostingu będą działać w sposób wystarczająco szybki?
2. Czy powinienem już użyć np. Sphinxa, a w takim wypadku czy i jak Sphinx będzie współpracował z serwerem VPS?
3. Myślałem również nad rozwiązaniem pośrednim tzn. tworzenie indeksu offline (napisaną aplikacją na zwykłym PC) i uploadowanie go do MySQL, co uważać o takim sposobie?
Będę wdzięczny za każdą sugestię.
Crozin
10.11.2013, 18:21:43
FTS wbudowany w MySQL spokojnie powinien sobie z tym poradzić. Zresztą, zawsze możesz później skorzystać ze Sphinksa, posiada on dobrą integrację z MySQL-em.
Zależy jakie chcesz uzyskać featuresy w swojej wyszukiwarce.
12k plików - są to pdfy/docx? Jeśli tak to technologie oparte na Lucene ułatwią Ci proces ich indeksowania - automatyczna ekstrakcja tekstu z plików.
Jeśli chcesz mieć np wyszukiwanie fasadowe, polską odmianę słów, jakieś ciekawe filtry przy indeksowaniu/odpytywaniu to tego MySQL Ci nie zapewni.
Pamiętaj też, że w miarę sensowny fulltextsearch zaczyna się od mysql 5.6 - wcześniej nie wspierał go silnik InnoDB (jedynie MyIsam). A o wadach myisam radzę osobno poczytać ;-)
Więc:
- na mysql pewnie się uda, ale będziesz zawsze nim ograniczony
- na Solr/Spinhx uzyskasz o wieeele większe możliwości
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.