Pagina 1 van 1
Zoekmodule in mijn eigen CMS
Geplaatst: 31 maa 2010, 11:29
door Goztow
Ik heb een eigen CMS geschreven in PHP en zoek momenteel naar een methode om een soort van zoekmachine te incorporeren. Ik weet dat er nogal veel goede dingen bestaan de dag van vandaag en voel er weinig voor om zelf het warm water opnieuw uit te vinden. Enkele slimmerikken zullen hetzelfde beweren voor CMS, maar als je die zelf schrijft, kan je die ook zelf makkelijk aanpassen aan specifieke behoeften

.
Anyway, dit is de situatie:
* de user voegt artikels toe in zijn CMS via een WYSWYG (achterliggende mysql database). Voor het ogenblik voert hij geen trefwoorden in. Dit zou eventueel kunnen maar wil ik het liefst vermijden.
* de user kan ook documenten toevoegen in bepaalde onderdelen. Dit is min of meer zo: publicatie in PDF, titel, omschrijving, trefwoorden. Hier kan dus op de trefwoorden worden gezocht, wat me het best lijkto m te vermijden dat alle pdf's worden doorzocht.
* het liefst ook iets van "xx % overeenkomst" en gerangschikt op % overeenkomst.
Het vervelende van de google API is dat je een google logo krijgt op je website, wat ik persoonlijk niet wens. Ik wens iets overzichtelijk, pertinent, makkelijk te gebruiken en het liefst in PHP.
Ik ben er zeker van dat anderen al op dit probleem gestoot zijn, alle hulp is welkom!
Re: Zoekmodule in mijn eigen CMS
Geplaatst: 31 maa 2010, 11:33
door ubremoved_539
Gewoon een SQL met een WHERE LIKE '%...%' ?
Alles hangt er een beetje vanaf hoe krachtig je query expressie moet zijn.
Re: Zoekmodule in mijn eigen CMS
Geplaatst: 31 maa 2010, 11:40
door meon
MySQL: MATCH AGAINST:
http://dev.mysql.com/doc/refman/5.0/en/ ... earch.html
Als je IN documenten gaat willen zoeken ga je die moeten indexeren. Dat betekent een soort iFilter-achtige oplossing nodig hebben om documenten te kunne parsen.
Je kan eens kijken of Apache Lucene een oplossing is?
http://lucene.apache.org
Re: Zoekmodule in mijn eigen CMS
Geplaatst: 31 maa 2010, 11:43
door Goztow
Ik ken deze MySQL-queries en zou inderdaad zelf kunnen een module schrijven. Ik zocht echter naar iets dat bestaat, dat reeds meer uitgewerkt is naar gebruiksvriendelijkheid en pertinentie van resultaten toe. ik beschouw het als een WYSWYG-module: die creëer ik ook niet zelf als er al een goeie bestaat

.
Toch alvast bedankt en ik hoop op nog meer feedback

.
Re: Zoekmodule in mijn eigen CMS
Geplaatst: 31 maa 2010, 11:45
door meon
Match against doet doe precies wat jij vraagt? Sorteren naar relevantie, een getal geven hoe relevant het resultaat is, je hoeft geen trefwoorden te gebruiken, ...
Als je bovendien een manier vindt om een document naar plain text te converteren en op die manier ook in de DB te krijgen kan je ook daar je mysql fulltext-search op loslaten.
Re: Zoekmodule in mijn eigen CMS
Geplaatst: 31 maa 2010, 11:49
door Goztow
OK Meon, ik ga het verder bekijken

. Nogmaasl bedankt!

Re: Zoekmodule in mijn eigen CMS
Geplaatst: 31 maa 2010, 11:52
door meon
Ja, ik heb het zelf gebruikt in een eigen cms, vandaar dat ik dat weet

.
Zal eens kijken hoe m'n code er uit zag, site is helaas niet meer in de lucht. (dat wordt zoeken!)
Re: Zoekmodule in mijn eigen CMS
Geplaatst: 31 maa 2010, 11:59
door Goztow
Dat zou leuk zijn

. We moeten elkaar af en toe een handje kunnen helpen, hé :$.
Re: Zoekmodule in mijn eigen CMS
Geplaatst: 31 maa 2010, 14:26
door marcovanschagen
Hoi, ik heb in detail gewerkt met iFilters.
Het is iets dat lang geleden door Microsoft is bedacht, en sinds ca 1998 in veel producten zit als search & indexing. In veel andere CMS systemen is dit gebruikt. Verschillende leveranciers hebben een iFilter beschikbaar gesteld voor hun bestandsformaat. iFilter is in principe een COM object in een dll.
Er is code te schrijven om zulke iFilters direct aan te spreken, maar ze zijn bedoeld om makkelijk middels configuratie toe te voegen aan een vorm van microsoft Search, SQL server, SharePoint, volgens mijn ook aan IIS; als het maar een versie is ouder dan 1998. Veel iFilters werken echter niet als 64 bit versie, en zullen last hebben met windows 2008++.
Wat er gebeurt: Je bied een bestand aan, dat uiteindelijk door de juiste iFilter wordt opgepakt. het iFilter doet wat hij doen moet om alle searchable tekst te verzamelen uit de file, en presenteert het resultaat in tekst blokken terug aan de code.
Op een windows systeem zijn de iFilters voor office documenten makkelijk toe te voegen. Voor PDF zal je een en ander moeten lezen. Kies voor een 32 bit windows.
Om dit te gebruiken is het het makkelijkste als je de microsoft onderdelen aan kan spreken zodat de verdere details met het iFilter voor je geregeld worden. Makkelijkste manier is SQL server te nemen als database, FTS Full Text Search aan te zetten, tabel te maken met in ieder geval een kolom waar je de file content binair ingooit plus een kolom om filetype aan te geven. Indien filetype herkend wordt zal 'vanzelf' het iFilter worden gebruikt om de tekst te indexeren. Lastige materie, je moet je even goed inlezen, en zet zeker even een testserver op. Als het werkt is het geweldig.
Succes!
Re: Zoekmodule in mijn eigen CMS
Geplaatst: 31 maa 2010, 15:42
door ubremoved_539
Dat zijn wel een heleboel voorwaarden hé...
- Windows OS (maar geen 2008)
- 32 bit
- iFilter vinden
- MS SQL
... niet echt evident voor de meeste PHP hostings.
Re: Zoekmodule in mijn eigen CMS
Geplaatst: 31 maa 2010, 16:25
door marcovanschagen
Precies.
Kijk eens of er een oplossing of adapter is voor een PHP omgeving? Zou erg interessant zijn, ik kan mij voorstellen dat COM objecten stiekem toch gebruikt kunnen worden?
Re: Zoekmodule in mijn eigen CMS
Geplaatst: 31 maa 2010, 19:10
door meon
COM zit in de Windows API en zijn derhalve misschien via WINE beschikbaar. Ik denk niet dat dat een haalbare denkpiste is.
Enfin ja, iFilter kan je vergeten. Kijk of je open source word, pdf, excel, openxml (office 2007), opendocument (OpenOffice) - to text kan vinden...
Voor Excel 2007 weet ik
http://phpexcel.codeplex.com/ bvb.