login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Zoekmachine over meerdere sites

Offline Jointjeff - 30/06/2014 10:53
Avatar van JointjeffHTML interesse Hallo iedereen,

Dit is meer een "best practice" vraag dan puur technisch. De situatie is als volgt:
- Ik heb vier verschillende websites (waarvan 3 WordPress).
- Ze staan alle vier op een aparte server.

Nu wil een algemene zoekmachine maken vanuit een van de vier sites, die ook zoekt binnen de andere sites.

De Google Custom Search is geen optie, omdat ik wel volledige controle wil over het uiterlijk en over de prioriteiten gekoppeld aan de resultaten.

Hoe zouden jullie dit aanpakken? Hebben jullie hier misschien ervaring mee?

Ik ben benieuwd.

4 antwoorden

Gesponsorde links
Offline Thomas - 30/06/2014 13:02
Avatar van Thomas Moderator Wil je op elk van de sites kunnen zoeken in de eigen en andere sites? Of slechts op één? Oftewel, stel dat A, B, C de WordPress sites zijn, en D iets anders, wil je dan op elk van de sites (A, B, C, D) in de eigen en de andere sites kunnen zoeken?

Daarnaast, je site D is een vreemde eend in de bijt - als je enkel WordPress sites zou hebben zou het zoeken (en sorteren) min of meer op dezelfde wijze kunnen (en misschien is hier al een plugin of module voor - heb je hier al op gezocht - "wordpress multi site search" oid?). Of je bouwt hiervoor een apart ding wat niet technologie-specifiek is en ook in WordPress werkt op een of andere manier.

Dan: zijn elk van deze databases remote benaderbaar (te maken)? Je zou dan readonly grants voor de andere sites kunnen geven ofzo. Dan zou je rechtstreeks zaken uit de database uit kunnen lezen (optie 1). En dan moet je nog op een of andere manier deze resultaten combineren en sorteren.

Een alternatief is een webservice (optie 2) waarmee je de sites in staat stelt om bij elkaar te zoeken. Het combineer- en sorteerprobleem blijft.

Dit lijken mij de twee manieren om bij elkaar te zoeken ("binnendoor" en "buitenom" zogezeid).

Vervolgens: wat wil je precies zoeken? tekst? Gestructureerde data? Daar het WordPress betreft in 3 uit 4 gevallen neem ik aan tekst? Ik weet niet precies hoe de zoekfunctionaliteit van WordPress werkt, deze zullen waarschijnlijk geen FULLTEXT searches ondersteunen omdat de tabellen InnoDB zijn, tenzij je MySQL-versie behoorlijk nieuw is en WP dit (weer) ondersteunt?

En omdat je dus zoekt tussen verschillende sites is dit mogelijk traag, je hebt overhead door meerdere requests, het wachten op antwoord en het verwerken ervan. Mogelijk kun je dit weer tegengaan door caching etc..

Eerlijk gezegd heb ik weinig ervaring met dit onderwerp, maar het lijkt mij verstandig om eerst eens wat verkennend onderzoek te doen. Omdat je overwegend zoekt in WP kan het handig zijn om daar te beginnen met kijken wat WP voor mogelijkheden heeft en hoe die zijn zaken heeft opgelost.

Wellicht kunnen mensen jou gerichter helpen als je preciezer aangeeft hoe de zoekfunctionaliteit (functioneel) zou moeten werken.
Bedankt door: Jointjeff
Offline Jointjeff - 01/07/2014 09:14
Avatar van Jointjeff HTML interesse
FangorN schreef:
wil je dan op elk van de sites (A, B, C, D) in de eigen en de andere sites kunnen zoeken?

Vanuit 1 website, dus een centrale search.

FangorN schreef:
heb je hier al op gezocht - "wordpress multi site search" oid?

Ja, dan krijg je als enige oplossing (tot dusver) een plugin in combinatie met WordPress MU.


FangorN schreef:
Vervolgens: wat wil je precies zoeken? tekst? Gestructureerde data?

Tekst inderdaad.

FangorN schreef:
Eerlijk gezegd heb ik weinig ervaring met dit onderwerp, maar het lijkt mij verstandig om eerst eens wat verkennend onderzoek te doen.

Vandaar ook mijn bericht hier 

Zelf zit ik te denken om een soort van Crawl over de sites te doen, en dat vervolgens op te slaan in een aparte database tabel. Liever doe ik dat natuurlijk niet, want de search zal nooit realtime zijn (moet dan met cronjob gaan werken). Daarnaast wordt die tabel gigantisch aangezien alle vier de sites bomvol met data zitten.
Offline Thomas - 01/07/2014 11:35 (laatste wijziging 01/07/2014 11:40)
Avatar van Thomas Moderator Heb nog even verder zitten zoeken, en heb hier in een vaag ver verleden zijdelings iets mee te maken gehad: wellicht kan een Apache Solr Search Server uitkomst bieden.

Als ik het goed begrijp is dit een aparte machine die in een of andere taal (meestal JAVA) een Solr proces draait die (kort door de bocht) tekst van andere sites kan indexeren. Het POSTen van te indexeren data volgt bepaalde regels en kan op een aantal manieren (denk aan XML, JSON, CSV). Het opvragen van geindexeerde data volgt ook weer bepaalde regels, Solr heeft zijn eigen query syntax.

Met de google search "how does solr work" vond ik o.a. het volgende:
stackoverflow topic met links naar (introducerende) artikelen - wellicht interessant
solr tutorial legt lang niet alles uit maar geeft je enig gevoel voor hoe het werkt

Dit heeft waarschijnlijk wel een stijle leercurve en je zult dus een host moeten vinden die "Solr cores" aanbiedt.

Misschien is het verstandig om je opties open te houden en ook te kijken naar Lucene (heeft volgens mij nauwe relaties met Solr maar hoe of wat weet ik niet) of een andere fulltext search engine.

(En dit is dus min of meer optie 3: een soort van "uitbesteding" van het indexeer- en zoekproces. Hierbij moet je dus wel zelf de eindjes aan elkaar knopen )
Offline Jointjeff - 02/07/2014 11:18
Avatar van Jointjeff HTML interesse Via de fulltext search engine-link, kwam ik terecht bij Shpider (PHP).

Interessant, want deze crawled dus websites die je aangeeft en slaat ze vervolgens op in de database. Vrij gemakkelijk om te installeren. Nadeel is dat het behoorlijk lang duurt voordat een site volledig is geïndexeerd.

Ander nadeel is dat het niet vaak wordt voorzien van een update, en dat er gebruik gemaakt wordt van mysql_query (vanaf PHP 5.5 deprecated). Vraag is dus of dat op tijd wordt opgelost.

Bedankt voor je antwoord FangorN.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.163s