Goeie search engine?

Status
Niet open voor verdere reacties.

Merijnbosma

Gebruiker
Lid geworden
7 jun 2011
Berichten
189
Hallo,

Ik ben al een tijdje op zoek naar een goede en gemakkelijke search engine voor een website die ik maak maar na veel googlen en proberen kom ik maar niet tot een goed resultaat.

Vanuit de host kan ik The Search Engine Project installeren maar deze moet een index aanmaken om te functioneren maar daarbij geeft ie steeds een foutmelding als ik die index aan probeer te maken.

Kortom ik heb nog niks.

Het gaat om www.transportarchief.nl het is met name foto's wat de site vult.

Grtz Merijn
 
Hey,

Ik heb sphider werkend gekregen maar wil graag alleen het zoekvenster embedden in de bestaande site, liefst in de header (menu.php) aangeroepen door include.

Ik heb gekeken in het forum maar kom daar niet tot antwoorden waar ik wat mee kan. Ik ben nog wel aan het knoeien met header en footer maar krijg weer ruziende css.

Grtz merijn
 
heb al een form gevonden.

<form action="/search/search.php" method="get" target="_blank">
<input type="text" name="query" id="query" size="40" value="">
<input type="submit" value="Search YOUR SITE NAME">
<input type="hidden" name="search" value="1">
</form>

Thnx allemaal

Edit:

Het stuk html hierboven opent de resultaten in een nieuw venster. Om de resultaten in hetzelfde venster te openen simpelweg

target="_blank"

verwijderen uit de eerste regel. Dus:

<form action="/search/search.php" method="get">
<input type="text" name="query" id="query" size="40" value="">
<input type="submit" value="Search YOUR SITE NAME">
<input type="hidden" name="search" value="1">
</form>
 
Laatst bewerkt:
Als we moeten bemiddelen bij de ruzie, krijgen we wel een linkje naar een testpagina?

Edit:
O, kruispost: net te laat. :)
 
hehe ;)

volgens mij heb ik het nu aardig op de rit. alleen de fancybox werkt niet meer op de resultaat pagina.

Ik vermoed dat ik dat in moet voegen op de search.php dus heb dit geprobeerd;
Heb nu het stukje script en de links naar de javascripts op de search_results.html en op search.php en dat werkte niet. Toen heb ik de html code omgezet naar php en toen weer ingevoegd op beide maar geen resultaat.

www.transportarchief.nl
 
Je hebt dit erin staan:
Code:
<script type="text/javascript" src="../fancybox/jquery.easing-1.3.pack"></script>
Ik neem aan dat er .js achter die link moet komen.
 
Hoi Merijn,
Zekers, die .js moet er achter komen.

Dat de fancybox niet werkt in de zoekresultaten komt omdat de sphider-zoekmachine alle pagina's van de site afstruint, en daar niet uit kan opmaken of het een fancybox-pagina is of een gewone pagina.
  • Bij een fancybox-pagina moet de link een class="iframe" hebben, en een rel=".." met de naam van de fancybox-pagina.
  • Die zet de sphider er dus niet bij - en dan kan er ook geen fancybox komen inzoomen.

Maar jij weet het wel!
Dus kan er op de zoekresultaten-pagina een klein stukje javascript toegevoegd worden:
  • dat kijkt of er in de resultaten een fancybox-pagina zit,
  • en zo ja, aan die link de class="iframe" en het van toepassing zijnde rel-attribuut toevoegt.

Dit kan als volgt:
[JS]<script type="text/javascript">
var resultLinks=document.getElementById('results').getElementsByTagName('a');
for (var i=0; i<resultLinks.length; i++){
var link=resultLinks.href;
if (link.indexOf('news') != -1) { resultLinks.className='title iframe'; resultLinks.setAttribute('rel','news') };
if (link.indexOf('onbekend') != -1) { resultLinks.className='title iframe'; resultLinks.setAttribute('rel','x') };
// enz. voor alle pagina's die in een fancybox moeten komen
}
</script>[/JS]
Dit script moet helemaal onderaan de pagina geplaatst worden, vlak voor de </body></html>.

Toelichting
  • Regel 2 sprokkelt alle links van de resultaten bij elkaar.
  • Regel 3 t/m het eind loopt die links stuk voor stuk af.
  • Regel 4 pakt telkens de URL van een link op.
  • Regel 5 controleert of het woord "News" in de URL staat. Zo ja, dan wordt bij die link de bestaande class="title" veranderd tot class="title iframe", en er wordt aan de link ook rel="news" toegevoegd, zodat de fancybox aan de slag kan.
  • Regel 6 controleert of het de x-files pagina is, enz.
  • Als een link niet één van de opgegeven pagina's is, is het dus een gewone pagina die als eigen pagina opent als je op de link klikt.

Het lijkt me ook goed om de stijl van de klikbare links aan te passen, zodat de zuchtende zoeker weet waar hij/zij op moet klikken om de gewenste pagina tevoorschijn te toveren.
Code:
#results a {
	color: blue;
	text-decoration: underline;
	}

Test resultatenpagina, als gezocht is op het woord "Nieuws": bliksekaters.nl/tests/transport-zoek.htm
Dankzij het scriptje opent de tweede hit met de Nieuwspagina in de fancybox. :)

Bij de resultatenpagina merken we trouwens nog iets opvallends: alle pagina-titels zijn hetzelfde!
  • Die heeft sphider kennelijk uit de pagina-<title> van de verschillende gevonden pagina's gehaald ... en die zijn ook allemaal hetzelfde.

Ook voor de Google-vindbaarheid kan je de pagina's beter allemaal verschillende namen geven, dan is uit de <title> meteen op te maken om welke pagina het gaat:
<title>Transport Archief - Home</title>
<title>Transport Archief - Nieuws</title>
<title>Transport Archief - X-files</title>
enz.


Met vriendelijke groet,
CSShunter
 
Laatst bewerkt:
Ik heb een probleem met het invoegen bij de header.html... als ik naar jou bron kijk dan zie ik het script etc wel staan maar als ik bij mij kijk

HTML:
	<input type="hidden" name="search" value="1"> 
	</form>
			   
	</td>

</tr>
</table>
</center>
<link rel="stylesheet" href="../styles/layout.css" type="text/css" />

<div class="wrapper" id="header">
	<div id="logo">
		<h1><a href="http://www.transportarchief.nl">Transport Archief</a></h1>
	</div>
			<div id="topnav">
				<ul id="sddm">
					<li><a href="../index.php">Home</a></li>
					<li><a class='iframe' rel="news" href="../news.html">Nieuws</a></li>
					<li><a class='iframe' rel="x" href="../images/onbekend">X-Files</a></li>
					<li id="mappen"><a href="">Mappen</a>
						<ul>
							<li><a href="../map1.php">Map 1</a></li>
							<li><a href="">Map 2</a></li>
							<li><a href="">Map 3</a></li>
							<li><a href="">Map 4</a></li>
							<li><a href="">Map 5</a></li>
							<li><a href="">Map 6</a></li>
						</ul>
					</li>
					<li><a href="../aangeleverd.php">Aanleveren</a></li>
					<li id="mappen"><a href="">Merken</a>
						<ul>
							<li><a class='iframe' rel="merken" href="../images/merken/kromhout">Kromhout</a></li>
							<li><a class='iframe' rel="merken" href="../images/merken/verheul">Verheul</a></li>
						</ul>
					</li>
				</ul>
				
<form id="zoek" action="/sphider/search.php" method="get" target="_blank">
<input type="text" name="query" id="query" size="35" value="">
<input type="submit" value="Zoek">
<input type="hidden" name="search" value="1">
</form>

Begint de bron hiermee, kortom geen script etc geen eens <html> en <head> tags terwijl in de header het de css staat en die functioneert wel maar wordt niet weergegeven.

Grtz
 
Ja, dit zag ik tot mijn verbazing ook, toen ik de broncode van de resultatenpagina van een zoekopdracht ging bekijken.
Maar als je bv. met de Webdeveloper Toolbar in FF kijkt naar de gegenereerde broncode, is alles toch in orde: die begint gewoon met <html><head>. Dus dat had ik maar als basis voor m'n testpagina gebruikt.

Als je javascript uit zet, gebeurt er hetzelfde. Dwz. het ontbrekende wordt er niet door een javascript in gezet. Dan zal het vermoedelijk een verkeerd toegediende pagina-code zijn in een php-bestand, die dan door de browsers gecorrigeerd wordt.

Dit kan je alleen van buiten af niet zien vanwege de php, die alleen het resultaat laat zien en niet de samenstellende delen in de search.php.
Kan je een kopie van de search.php maken, die hernoemen tot search.txt, en die ergens uploaden en hier de link zetten?
Misschien valt daar iets uit op te maken.

Met vriendelijke groet,
CSShunter
 
Goedemorgen csshunter,

Het probleem van de header heb ik opgelost (had in de results pagina een losse php inlcude gedaan en die uit de search gehaald ivm niet werkende css maar nu werkt het wel en de header is dus nu ook weergegeven in de bron)

Alleen werkt het nog niet met de fancy box. (ik blijf wel knoeien vandaag tussen het werken door)

Plus de zoekfunctie opent na invoer in een nieuwe pagina maar daar heb ik een tutorial voor gevonden dus die maar eens doorlopen. Edit: Gelukt, zie post #6

Ik ga maar eens knoeien ;)

Grtz Merijn
 
Laatst bewerkt:
Goedemorgen Merijn,
De javascript-console laat zien dat een aantal spullen van jQuery niet gevonden kunnen worden; daardoor werkt de fancybox niet.

Aha, de sphider-resultatenpagina probeert het jQuery-javascript te vinden op de plek:
www.transportarchief.nl/sphider/scripts/jquery-1.3.2.min.js, maar dat levert een 404 op: het bestand staat daar niet.
Het staat wel op www.transportarchief.nl/scripts/jquery-1.3.2.min.js.

Als dat in de sphider moeilijk te veranderen is, kan je 'm er ook dubbel in zetten om van alles af te zijn. :)

Met vriendelijke groet,
CSShunter
 
PS:
Bij een korte resultatenpagina verspringt deze links-rechts: in de andere browsers dan Internet Explorer.
De oorzaak is de scrollbar rechts, waarvoor bij een korte pagina geen ruimte gereserveerd wordt.



In de layout.css moet er dus even bij:
Code:
html {
    height: 100%;
    padding-bottom: 1px;
    }
 
Ik zie dat de resultspagina helemaal raar doet bij explorer. Die staat bij mij geheel links en de dropdown menus werken niet. Terwijl bij FF alles goed werkt en aangeraden wordt daar mee te testen omdat dat het strengst is qua regels.

Waarom maakt explorer er dan weer een bende van?
 
  1. Omdat het Internet Explorer is.
  2. Omdat een truc niet is toegepast; ik zal kijken of ik er iets op kan vinden om IE braaf te krijgen.

Wordt vervolgd!
 
Ah, het Doctype was niet helemaal compleet, dan springt IE in de quirksmode (fratsen-toestand).

Beginnetje met:
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<html lang="nl">
<head>
... maakt bij mij IE qua positie zo mak als een lammetje. :)

(de html komt nog niet 100% door de validator, maar dat deert de pret niet voor het centreren.)

Het dropdown-menu gaat ook al niet goed in de gewone pagina's, zie ik. Nog op m'n ToDo-lijstje om naar te kijken. Want je bent niet zomaar van IE af! ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan