De:WWWIntegration (zentrale Suche)

Aus YaCyWiki
Wechseln zu: Navigation, Suche

Globaler Index - zentrale Suche

YaCy (von Yet another Cyberspace, homophon zu engl. ya see) ist eine Suchmaschine, die nach dem Peer-to-Peer-Prinzip – kurz P2P – arbeitet. Dabei gibt es keinen zentralen Server, sondern alle Teilnehmer daran sind gleichwertig.

Jeder Peer-Betreiber kann im YaCy-Netz suchen und (optional) zum Index beitragen. Letzteres indem er einen Webcrawler losschickt oder einfach alle besuchten Seiten über den YaCy-Proxy indexieren lässt. Wenn nun irgendein anderer Peer im YaCy-Netzwerk eine Suche startet, kann er alle von anderen Peers indizierten Seiten finden, die zum Zeitpunkt der Suche online sind. Durch das dezentrale Prinzip ist YaCy resistent gegen Ausfälle.

Der Nachteil, der o.g. Peers leigen bei der zentralen Suche, wenn man die jeweiligen Peers nacheinander durchforstet, stellt man fest, das eine 99,99% bei 24h/7D, verfügbarkeit nicht gegeben ist.

Der Vorteil, durch ein einfaches Script, werden nach dem Zufallsprinzip nach Onlinepeers gesucht. Das Zufallsprinzip deshalb, damit einzelne Peers nicht zu stark belastet werden.


Zentrale Suche

So kann, der Enduser, welcher, sich a) Nicht auskennt und b) dem es egal ist, wie eine Suchmaschine funktioniert, immer die Gleiche Webseite aufsuchen, um seine Suche zu starten.


Einbinden In Ihre Seite

Suchfeld für Ihre Webseite

<form method="get" accept-charset="UTF-8" action="yacysearch.php">
<a href="http://yacy.domain.tld.invalid">YaCy P2P Web Live Search</a>
    <input type="text" name="query" value="" maxlength="80"
           style="width:150px; font-size:16px; float:left;" />
    <input type="hidden" name="verify" value="true" />
    <input type="hidden" name="maximumRecords" value="10" />
    <input type="hidden" name="meanCount" value="5" />
    <input type="hidden" name="resource" value="local" />
    <input type="hidden" name="urlmaskfilter" value=".*" />
    <input type="hidden" name="prefermaskfilter" value="" />
    <input type="hidden" name="display" value="2" />
    <input type="hidden" name="nav" value="all" />
    <input type="submit" name="Enter" value="Search" />
</form>

Komplette Webseite (PHP)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
<head>
<title>YaCy P2P Web Live Search</title>
<meta name="title" content="YaCy P2P Web Live Search" />
<meta name="description" content="YaCy ist eine Suchmaschinensoftware die sich jeder installieren kann um damit ein Suchportal zu errichten, das Intranet zu indexieren oder andere Daten mit einer Suchfunktion zu erweitern. YaCy beinhaltet einen Webcrawler, so dass es einfach ist, eine große Anzahl von Dokumenten aus dem Web sehr schnell zu erfassen. Dabei ist YaCy sehr hoch skalierbar, eine Installation kann mehr als 20 Millionen Webseiten erfassen und speichern, aber im Peer-to-Peer Verbund mit weiteren YaCy Installationen hat YaCy eine unbegrenzte Kapazität" />
<meta name="keywords" content="YaCy HTTP Proxy search engine spider indexer java network open free download Mac Windows Linux Software development" />
<meta name="logo" content="img/yacy-logo2.png" />
<?php
/**
 * Hier einfach euer Peer eintragen, falls vorhanden oder zusätzliche Peers,
 * nach dem folgenden Schema, diese Datei funktioniert auch ohne zutuen!
 */
$peerAddress = array();
$peerPort = array();
$peerName = array();

$peerAddress[] = gethostbyname('tokeek.homedns.org');  $peerPort[] = 8090;  $peerName[] = 'Vega-1';
$peerAddress[] = gethostbyname('konstantinii.homedns.org');  $peerPort[] = 8090;  $peerName[] = 'konstantinnII';
$peerAddress[] = gethostbyname('erftstadtkekuko.selfip.net');  $peerPort[] = 8090;  $peerName[] = 'kekuko-de';
$peerAddress[] = gethostbyname('free-search.homelinux.org'); $peerPort[] = '8000';  $peerName[] = 'free-search';

$zufall = mt_rand(0, count($peerAddress) - 1);

if (@fsockopen($peerAddress[$zufall],$peerPort[$zufall],$errno,$errstr,'1')){
	$zufallsnetz = 'true';
	$peerNamesearchtine = $peerAddress[$zufall] . ':' . $peerPort[$zufall];
	$aktuellesearchtine = $peerAddress[$zufall];
	clearstatcache();
}

if ($zufallsnetz != 'true') {
	for ($zufall = 0; $zufall < count($peerAddress); $zufall++) {
		if (@fsockopen($peerAddress[$zufall],$peerPort[$zufall],$errno,$errstr,'1')){
			$peerNamesearchtine = $peerAddress[$zufall] . ':' . $peerPort[$zufall];
			$aktuellesearchtine = $peerAddress[$zufall];
			clearstatcache();
		}
	}
}

?>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="shortcut icon" href="favicon.ico" />
<link rel="stylesheet" type="text/css" media="all" href="http://<?php echo $peerNamesearchtine; ?>/env/base.css" />
<link rel="stylesheet" type="text/css" media="screen" href="http://<?php echo $peerNamesearchtine; ?>/env/style.css" />
<!--[if lt IE 6]>
   <link rel="stylesheet" type="text/css" media="screen" href="http://<?php echo $peerNamesearchtine; ?>/env/oldie.css" />
<![endif]-->
<!--[if lte IE 6.0]>
   <link rel="stylesheet" type="text/css" media="screen" href="http://<?php echo $peerNamesearchtine; ?>/env/ie6.css" />
<![endif]-->
<!--[if lte IE 7.0]>
   <link rel="stylesheet" type="text/css" media="screen" href="http://<?php echo $peerNamesearchtine; ?>/env/ie7.css" />
<![endif]-->


<link rel="alternate" type="application/rss+xml" title="Search for " href="http://<?php echo $peerNamesearchtine; ?>/yacysearch.rss?search=" />
<link rel="search" type="application/opensearchdescription+xml" title="YaCy Search" href="http://<?php echo $peerNamesearchtine; ?>/opensearchdescription.xml" />
<link rel="stylesheet" type="text/css" media="screen" href="http://<?php echo $peerNamesearchtine; ?>/env/highslide.css" />
<link rel="bookmark" type="text/html" title="YaCy P2P Web Live Search" href="http://<?php echo $peerNamesearchtine; ?>" />

<script type="text/javascript" src="http://<?php echo $peerNamesearchtine; ?>/js/ajax.js"></script>
<script type="text/javascript" src="http://<?php echo $peerNamesearchtine; ?>/js/xml.js"></script>
<script type="text/javascript" src="http://<?php echo $peerNamesearchtine; ?>/js/yacysearch.js"></script>
<script type="text/javascript" src="http://<?php echo $peerNamesearchtine; ?>/js/highslide/highslide.js"></script>
<script type="text/javascript">hs.outlineType = 'rounded-white';</script>
<link media="screen" type="text/css" href="http://<?php echo $peerNamesearchtine; ?>/yacy/ui/css/themes/start/ui.base.css" rel="stylesheet" />
<link media="screen" type="text/css" href="http://<?php echo $peerNamesearchtine; ?>/yacy/ui/css/themes/start/ui.theme.css" rel="stylesheet" />
<!--
@TODO Kein Copyright-Hinweis!
<script src="http://www.xotti.de/.tools/toolbox.js" type="text/javascript"></script>
//-->
</head>
<body id="yacysearch">

<div class="SubMenu">
<ul class="SubMenu">
<li style="width:12%;"><a href="http://<?php echo $peerNamesearchtine; ?>/Status.html" class="MenuItemLink">Peer Administration</a></li>
<li style="width:12%;"><a href="javascript:void(window.open('http://<?php echo $peerNamesearchtine; ?>/social-bookmarks.php?titelzeile=YaCy%20P2P%20Web%20Live%20Search&description=YaCy%20ist%20eine%20Suchmaschinensoftware%20die%20sich%20jeder%20installieren%20kann%20um%20damit%20ein%20Suchportal%20zu%20errichten,%20das%20Intranet%20zu%20indexieren%20oder%20andere%20Daten%20mit%20einer%20Suchfunktion%20zu%20erweitern.','','width=600,height=550,left=0,top=0,resizable=yes,menubar=no,location=yes,status=yes,scrollbars=yes'))" target="_self" title="Social Bookmark" alt="Social Bookmark" name="Social Bookmark" class="MenuItemLink">Lesezeichen / Favorit</a></li>
<li style="width:12%;"><a href="http://<?php echo $peerNamesearchtine; ?>/compare_yacy.html" onclick="this.href='/compare_yacy.html?display=0&handover='+document.searchform.search.value" class="MenuItemLink">Vergleiche YaCy</a></li>
<li style="width:12%;"><a href="http://<?php echo $peerNamesearchtine; ?>/Surftips.html" class="MenuItemLink">Surftipps</a></li>
<li style="width:12%;"><a href="http://<?php echo $peerNamesearchtine; ?>/ViewProfile.html?hash=localhash" class="MenuItemLink">Impressum dieses Peers</a></li>
<li style="width:12%;"><a href="http://www.yacy-websearch.net/wiki/index.php/Hauptseite" class="MenuItemLink">Hilfe / Wiki</a></li>
<li style="width:12%;"><a href="http://www.yacy.net/" class="MenuItemLink" title="Eigene Suchmaschine - Programmdownload">Projektseite</a></li>
</ul>
</div>

<div style="clear:left; padding:10px; padding-top:2px;">
<script src="http://<?php echo $peerNamesearchtine; ?>/yacy/ui/js/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="http://<?php echo $peerNamesearchtine; ?>/yacy/ui/js/jquery-ui-1.7.2.min.js" type="text/javascript"></script>
<script src="http://<?php echo $peerNamesearchtine; ?>/yacy/ui/js/jquery-1.3.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
	$(function() {
		yconf = {
			url    : 'http://<?php echo $peerNamesearchtine; ?>',
			logo   : 'http://<?php echo $peerNamesearchtine; ?>/yacy/ui/img/yacy-logo.png',
			link   : 'http://<?php echo $peerNamesearchtine; ?>',
			global : false,
			width  : 500,
			height : 620,
			position : ['top',50],
			theme  : 'start',
			title  : 'YaCy Portal Search'
		};
		$.getScript(yconf.url+'/yacy/ui/js/yacyui-portalsearch.js', function(){});
	});
</script>
<form class="search small" action="http://<?php echo $peerNamesearchtine; ?>/yacysearch.html" method="get" accept-charset="UTF-8">
<h2>YaCy P2P Web Live Search</h2>
<div class="yacylogo"><a href="http://<?php echo $peerNamesearchtine; ?>" class="yacylogo"><img src="http://<?php echo $peerNamesearchtine; ?>/env/grafics/YaCyLogo_60ppi.png" alt="yacysearch" /></a></div>
<fieldset class="yacys">
<input id="search" name="query" type="text" size="50" maxlength="80" value="" onclick="document.getElementById('Enter').value = 'Suchen'" />
<input id="Enter" type="submit" name="Enter" value="Suchen" />
<div class="yacysearch">
          <input type="hidden" name="verify" value="true" />
	 <input type="hidden" name="maximumRecords" value="30" />
	 <input type="hidden" name="resource" value="global" />
	 <input type="hidden" name="urlmaskfilter" value=".*" />
	 <input type="hidden" name="prefermaskfilter" value="" />
	 <input type="hidden" name="display" value="2" />
	 <input type="hidden" name="nav" value="all" />
          <input type="radio" id="text" name="contentdom" value="text" checked="checked" />
          <label for="text">Text</label>  
          <input type="radio" id="images" name="contentdom" value="image" />
          <label for="images">Bilder</label>  
          <input type="radio" id="audio" name="contentdom" value="audio" />
          <label for="audio">Audio</label>  
          <input type="radio" id="video" name="contentdom" value="video" />
          <label for="video">Videos</label>  
          <input type="radio" id="appl" name="contentdom" value="app" />
          <label for="appl">Anwendungen</label>
            
          <a href="http://<?php echo $peerNamesearchtine; ?>/index.html?display=2&searchoptions=1&count=10&resource=global&urlmaskfilter=.*&prefermaskfilter=&cat=href&constraint=&contentdom=text&former=&meanCount=5">Mehr Optionen</a>
          </div>
          </form>
</div>

<?php
echo'<b>Change Peer</b><img src="img/ICN-Pfeil.gif" width="28" height="8" border="0" alt="Change Peer">';
for ($zufall = 0; $zufall < count($peerAddress); $zufall++) {
	$hostname = gethostbyaddr($peerAddress[$zufall]);
	if ($aktuellesearchtine == $peerAddress[$zufall]) echo'<b><u>';
	$var = $zufall + 1;
	if (isset($peerName[$zufall])) {
		$anzeige = $peerName[$zufall];
	} else {
		$anzeige = $peerAddress[$zufall];
	}
	if (fsockopen($peerAddress[$zufall],$peerPort[$zufall],$errno,$errstr,'2')) {
		echo'<b>['.$var.']</b> <a href="http://' . $peerAddress[$zufall] . ':' . $peerPort[$zufall] . '" title="' . $hostname . ' - ' . $peerAddress[$zufall] . '">' . $anzeige . '</a>  ';
	}
	if ($aktuellesearchtine == $peerAddress[$zufall]) echo'</u></b>';
	unset($hostname);
}
?>
</body>
</html>

Internetlinks und weiterführende Informationen