Wat is de beste manier van zoekindexatie?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

- Ariën  -
Beheerder

- Ariën -

27/01/2023 21:54:47
Quote Anchor link
Ik zit te denken om in de toekomst gebruikt maken van een indexatiesysteem om nieuwsberichten of andere records de indexeren in een extern indexatie systeem.

Ik zag Solr, Lucene, Elastic Search en Sphinx al langskomen.

Mijn eisen zijn: Lightweight, filters ingebouwd, niet teveel geheugen verbruik, code wordt onderhouden, en via PHP benaderbaar (zijn ze allemaal wel).

Wat zou jullie advies zijn?
Gewijzigd op 27/01/2023 21:55:42 door - Ariën -
 
PHP hulp

PHP hulp

03/12/2024 19:02:43
 

28/01/2023 21:18:46
Quote Anchor link
Ik vraag me af wat je precies bedoelt met extern, en waarom een database niet voldoet.
Een database zou juist alles moeten kunnen, t/m in memory aan toe.
Maar misschien heb je een bijzondere toepassing?
 
- Ariën  -
Beheerder

- Ariën -

28/01/2023 21:48:19
Quote Anchor link
Ik heb begrepen dat zo'n zoekindex beter kan sorteren op relevantie bijvoorbeeld. Beter dan LIKE of MATCH in MySQL.

Ik wil er eerst eens mee experimenteren, en mogelijk met een kopie van mijn database met ruim 9k aan nieuwsberichten.
Gewijzigd op 28/01/2023 21:50:18 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

01/02/2023 16:06:52
Quote Anchor link
Iemand nog wat ervaringen met de genoemde tools?
 

02/02/2023 08:21:39
Quote Anchor link
Er zijn alleen al in een database vele manieren van al dan niet full text indexeren.
- Postgres: https://www.postgresql.org/docs/current/textsearch-indexes.html
- MySQL: https://dev.mysql.com/doc/refman/8.0/en/mysql-indexes.html

En 9k aan artikelen is best weinig, op het eerste gezicht is het niet de tijdsinvestering waard om daar externe tools voor te gebruiken, vooral als je de data al in een database hebt staan.
 
- Ariën  -
Beheerder

- Ariën -

02/02/2023 09:55:36
Quote Anchor link
Dus je wilt zeggen dat enkel experimenteren ook zinloos is, dat zulke tools voor Piet Snot zijn geschreven, en dat ik mijn tijd beter kan besteden?
Klinkt raar.....

Zoals ik al zei: Ik wil ermee experimenteren, en was benieuwd naar ervaringen. Of ik het in productie gebruik , en op wat voor manier, is een volgende beslissing.
Gewijzigd op 02/02/2023 10:05:29 door - Ariën -
 

02/02/2023 10:52:46
Quote Anchor link
Experimenteren staat natuurlijk vrij.

Mijn ervaring is dat databases voldoende snel zijn om aan je behoefte te voldoen zoals je die hebt omschreven:
- Lightweight (kost niets extra's bovenop de database die je toch al hebt)
- filters ingebouwd (WHERE statement)
- niet teveel geheugen verbruik
- code wordt onderhouden
- via PHP benaderbaar (zijn ze allemaal wel)

Zelf heb ik nooit de behoefte gehad om met nog meer externe tools te experimenteren. Er is wel meer info over te vinden via SO en dan kom je er al snel achter wat de nadelen zijn van Lucene, dat ElasticSearch niet lichtgewicht is, Solr voortborduurt op Lucene/ElasticSearch. De eerste om uit te proberen wordt dan Sphinx.

Voordat ik zoiets zou doen zou ik me eerst verdiepen in alle zoekmogelijkheden van je database. Al was het maar om de externe tool mee te kunnen vergelijken voor het experiment. SQL gaat veel verder dan WHERE en LIKE, daarover meer in dit artikel. Je kunt bijvoorbeeld ook fuzzy zoeken en ranking toepassen, en wanneer je de juiste indices aanbrengt is het enorm snel. Je kunt de data op schijf houden, of in een in-memory MATERIALIZE VIEW.

Met MySQL kan je net wat minder. Je kunt wel full text searches doen, met ranking ook. Maar fuzzy searches worden nog niet ondersteund.

Het is vrij waarschijnlijk dat wanneer je zou overgaan op een geavanceerdere database dan MySQL/MariaDB, je meer mogelijkheden hebt waarmee je ruimschoots uit de voeten zou kunnen. Ik ben benieuwd naar je testresultaten van wat een externe zoekmachine-tool daar nog aan toe kan voegen.
 
- Ariën  -
Beheerder

- Ariën -

03/02/2023 16:20:37
Quote Anchor link
Ik zal eens kijken wat ik met MySQL kan doen, maar ik ga zeker eens kijken naar de andere mogelijkheden.
Ik had al op een test VPS'je al ElasticSearch geprobeerd, maar dat had niet voldoende aan 2GB. Ik ga de andere mogelijkheden eens proberen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.