De:InterfaceÜberHTTP
Inhaltsverzeichnis
Einführung
YaCy bietet ein umfangreiches Interface das als Java-Applets realisiert und über den YaCy-eigenen Webserver auf dem konfigurierten Proxy-Port ansprechbar ist. Darüber hinaus können alle Funktionen auch per HTML Anfragen ausgelöst und, falls Antworten wie Suchergebnisse erwartet werden, diese über XML oder JSON ausgewertet werden.
Entwicklern und Anwendern wird damit der einfache Zugriff auf YaCys innovative Indexier- und Suchtechnologie ermöglicht um komplexe Abfragemasken oder vereinfachte Administration der YaCy-Engine zu realisieren. Das vorhande Admin-Interface kann parallel genutzt werden um weitergende Einstellungen oder Konfiguration durchzuführen.
Erste Schritte
Such-APIs sind mittlerweile weit verbreitet, im allgemeinen werden sie über eine weitgehend standardisierte HTML-Anfrage an den Peer oder Server angesprochen und liefern dann eine Liste von Resultaten zurück. Beim YaCy-API besteht diese aus XML oder JSON Datenströmen die von den meisten Programmiersprachen aus leicht dekodiert werden können.
Die meisten kommerziellen Suchdienste schränken die Nutzung ein oder erheben Gebühren für die Verwendung der Daten.
Der Index eines YaCy-Netzwerks ist aber die Summe der Arbeit aller Benutzer, also können auch alle diese Benutzer frei darauf zugreifen und die Resultate ebenso frei verwenden. So erhalten Entwickler und Anwender kostenfreien Zugriff auf modernste Suchtechnologien und können gleichzeitig die Arbeit aller beteiligten Nutzer mitnutzen.
Mit Hilfe von YaCy können so leicht selbst innovative Suchdienste entwickelt und verwendet werden, ohne auf dabei auf einzlne Suchserver oder kommerzielle Anbieter angewiesen zu sein.
Den YaCy Peer installieren
Die YaCy-Software läuft auf dem PC oder Server innerhalb einer virtuellen Java-Maschine, die dazu benötigte Java-Software ist für verschiedene Betriebsyteme erhältlich. Einen Überblich bietet der Abschnitt De:Install
Zugriff auf einen YaCy-Peer erhalten
Unter De:FirstSetup ist ausführlich beschreiben wie ein YaCy-peer gestartet und bedient wird, Grundlage der Bedienung ist immer die IP-Adresse des jeweiligen PC-Systems und die zugewiesene Port-Adresse.
Ein YaCy-peer auf dem eigenen PC kann über die Adresse 127.0.0.1 oder localhost angesprochen werden, normalerweise unter dem port 8090, dieser kann jedoch frei gewählt sein.
Die Statusseite des lokalen YaCy-peers kann also mit http://localhost:8090/Status.html, oder die zentrale Suchseite über Index.html aufgerufen werden. Über diese Adresse erfolgt auch die API-Steuerung indem die Seite des gewünschten Applets aufgerufen wird.
Für manche Aktionen ist eine Anmeldung erforderlich, ansonsten sind Ergebnisse eingeschränkt oder manche Funktionen gar nicht verfügbar. Sind allerdings die Zugangsdaten für einen peer bekannt kann darüber auf den Suchindex des gesamten angeschlossenen Netzwerks zugegriffen werden.
Das YaCy API
Überblick
Referenz siehe Dev:API
Nutzen
Websuche
Das Such API ermöglicht einen bequemen Zugriff auf YaCy Suchresultate um Drittsoftware die Nutzung von YaCy zu ermöglichen.
Syntax
Die Beispiele verwenden HTML und XML.
Abfrage
Einfache Suche über HTTP nach 'YaCy Websuche':
http://localhost:8090/yacysearch.rss?query=yacy+websuche&contentdom=text&maximumRecords=10&startRecord=0
XML Antwort
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type='text/xsl' href='/yacysearch.xsl' version='1.0'?> <rss version="2.0" xmlns:yacy="http://www.yacy.net/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom"> <!-- YaCy Search Engine; http://yacy.net --> <channel> <title>Live p2p Search</title> <description>Search for yacy websuche</description> <link>http://freeworld.walamt.de:8120/yacysearch.html?query=yacy+websuche&resource=local&contentdom=text&verify=false</link> <image> <url>http://freeworld.walamt.de:8120/env/grafics/yacy.gif</url> <title>Search for yacy websuche</title> <link>http://freeworld.walamt.de:8120/yacysearch.html?query=yacy+websuche&resource=local&contentdom=text&verify=false</link> </image> <opensearch:totalResults>40</opensearch:totalResults> <opensearch:startIndex>0</opensearch:startIndex> <opensearch:itemsPerPage>10</opensearch:itemsPerPage> <atom:link rel="related" href="opensearchdescription.xml" type="application/opensearchdescription+xml"/> <opensearch:Query role="request" searchTerms="yacy+websuche" /> <item> <title>YaCy-Blog » 2007 » Januar</title> <link>http://blog.yacy-websuche.de/2007/01/</link> <description>http://blog.<b>yacy</b> <b>websuche</b>.de/2007/01/</description> <pubDate>Tue, 26 Jan 2010 01:00:00 +0100</pubDate> <yacy:size>20742</yacy:size> <yacy:sizename>20 kbyte</yacy:sizename> <yacy:host>blog.yacy-websuche.de</yacy:host> <yacy:path>/2007/01/</yacy:path> <yacy:file>/2007/01/</yacy:file> <guid isPermaLink="false">kO0XkFm14ZBC</guid> </item> </channel> </rss>
Optionale Parameter
Um die Suche zu präzisieren oder nur einen bestimmten Bereich von Resultaten anzufordern können der Suchanfrage einige dieser Parameter hinzugefügt werden, ansonsten verwendet YaCy die kursiven Standardwerte.
Beispiel einer komplexen, auf *.png beschränkten Suche nach 5 Textlinks beginnend beim 50. Resultat. Die Ergebnisse des gesamten Suchnetzes sollen bevorzugt von der Seite yacy.net stammen und ohne verify ausgeliefert werden.
http://localhost:8090/yacysearch.rss?query=yacy&contentdom=text&maximumRecords=5&startRecord=50&verify=false&resource=global&urlmaskfilter=png&prefermaskfilter=yacy.net
query = | string aus durch Leerzeichen sowie + und / getrennte Suchbegriffe
|
contentdom =text |
Begrenzt die Suche auf
|
resource = local |
|
urlmaskfilter = | RegExp um die Suche zu beschränken. |
prefermaskfilter = | RegExp um gefundene Ergebnisse zu bevorzugen. |
verify =true |
|
maximumRecords =10 | number Anzahl Suchergebnisse die geliefert werden sollen. |
startRecord = | number Erstes geliefertes Suchergebnis |
lr = | gewünschte Suchsprache z.b. lr=lang_en |
meancount = | number Anzahl alternativer Suchanfragen für 'did you mean?' |
nav = |
|