Heim > Artikel > Backend-Entwicklung > Aufbau einer Suchmaschine mit PHP und Apache Solr
Mit der Popularität des Internets und mobiler Geräte sind Suchmaschinen für Menschen zur ersten Wahl geworden, um Informationen zu erhalten und Antworten zu finden. Der Aufbau einer effizienten und genauen Suchmaschine erfordert den Einsatz einer Vielzahl von Technologien und Tools. In diesem Artikel wird erläutert, wie Sie mit PHP und Apache Solr eine Suchmaschine erstellen.
1. Was ist Apache Solr?
Apache Solr ist eine Open-Source-Suchplattform auf Basis von Lucene, die in Java geschrieben ist und schnelle, skalierbare und effiziente Textsuch- und Analysefunktionen bietet. Solr kann Text, XML, JSON und andere Datenformate speichern, indizieren und durchsuchen. Es unterstützt mehrere Abfragesprachen wie Lucene-Abfragesyntax, SQL, XPath, XSLT usw.
2. Warum Apache Solr wählen?
Im Vergleich zu anderer Suchmaschinensoftware bietet Solr folgende Vorteile:
3. Wie verwende ich Apache Solr?
Zuerst müssen Sie die neueste Version von Apache Solr herunterladen und in ein geeignetes Verzeichnis entpacken. Befolgen Sie dann zum Konfigurieren und Starten die offizielle Dokumentation (https://lucene.apache.org/solr/guide/8_6/).
Die Kernfunktion von Solr besteht darin, Daten zu indizieren und zu durchsuchen. Die Indizierung besteht darin, Daten auf eine bestimmte Weise auf dem Solr-Server zu speichern. Solr unterstützt mehrere Datenformate wie JSON, XML, CSV usw.
Im Folgenden wird das JSON-Format als Beispiel verwendet, um die Erstellung eines Indexes vorzustellen:
Zuerst müssen Sie eine schema.xml-Datei definieren, um die Datenstruktur und Indexkonfiguration zu beschreiben. schema.xml enthält den folgenden Inhalt:
Zum Beispiel:
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="title" type="text_general" indexed="true" stored="true" multiValued="false" /> <field name="content" type="text_general" indexed="true" stored="true" multiValued="true" /> <copyField source="title" dest="text" /> <copyField source="content" dest="text" /> <uniqueKey>id</uniqueKey>
Als nächstes verwenden Sie den Curl-Befehl, um die Daten in Solr zu importieren:
curl http://localhost:8983/solr/mycore/update -H “Content-Type:application/json" -d '[ { "id":"1", "title":"Solr是什么", "content":"Solr是一款开源搜索引擎" }, { "id":"2", "title":"Solr如何使用", "content":"可以使用Java或HTTP协议发送请求到Solr服务器" }, { "id":"3", "title":"Solr的优势是什么", "content":["高效性", "可扩展性", "易用性"] } ]’
Der obige Befehl bedeutet, die Daten mit den IDs 1, 2 und 3 in die Mycore-Indexbibliothek zu importieren.
Die Abfragesprache von Solr unterstützt eine Vielzahl von Abfragemethoden, wie z. B. Platzhalterabfragen, Phrasenabfragen, Bereichsabfragen, boolesche Abfragen usw. Im Folgenden wird eine HTTP-Abfrage als Beispiel verwendet:
http://localhost:8983/solr/mycore/select?q=title:Solr&fq=content:开源&sort=id+desc&start=0&rows=10&fl=title,id
Die obige Abfrage bedeutet:
4. Wie verwende ich PHP, um eine Verbindung zum Solr-Server herzustellen?
PHP bietet die Curl-Erweiterung, die zum Senden von HTTP-Anfragen verwendet werden kann. Das Folgende ist ein einfaches Beispiel für die Verbindung mit dem Solr-Server:
<?php $url = 'http://localhost:8983/solr/mycore/select?q=title:Solr'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); echo $response; ?>
Der obige Code bedeutet, dass eine Abfrageanforderung an den Solr-Server gesendet wird und das zurückgegebene Ergebnis in der Variablen $response gespeichert wird.
5. Wie verwende ich PHP und Solr, um eine Suchmaschine zu erstellen?
Zuerst müssen Sie die zu durchsuchenden Daten in Solr importieren. Sie können den Curl-Befehl verwenden oder Code in PHP schreiben, um den Importvorgang durchzuführen. Zum Beispiel:
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://localhost:8983/solr/mycore/update?commitWithin=1000'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type:application/json')); curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data); $response = curl_exec($ch); curl_close($ch);
Der obige Code zeigt an, dass PHP verwendet wird, um die Daten in $json_data in eine Indexbibliothek namens mycore zu importieren und den Übermittlungsvorgang innerhalb von 1 Sekunde abzuschließen.
Verwenden Sie PHP, um eine Verbindung zum Solr-Server herzustellen, die Abfrageschnittstelle aufzurufen und Abfrageergebnisse zurückzugeben. Zum Beispiel:
$url = 'http://localhost:8983/solr/mycore/select?q='.$query.'&start='.($page-1)*$rows.'&rows='.$rows.'&wt=json&indent=true'; $response = file_get_contents($url);
Der obige Code bedeutet, eine Abfragebedingung $query zu definieren. Auf der Seite $page zeigt jede Seite $rows Datenstücke an. Verwenden Sie die Funktion file_get_contents, um Abfrageergebnisse vom Solr-Server abzurufen.
Parsen Sie die Abfrageergebnisse in ein PHP-Array, führen Sie dann nach Bedarf Paging-, Sortier-, Filter- und andere Vorgänge aus und zeigen Sie schließlich die Daten auf der Seite an. Zum Beispiel:
$data = json_decode($response, true); foreach ($data['response']['docs'] as $doc) { echo '<a href="'.$doc['url'].'">'.$doc['title'].'</a><br/>'; }
Der obige Code stellt das Durchlaufen der Abfrageergebnisse dar und zeigt den Titel und den Link jedes Datenelements an.
6. Zusammenfassung
In diesem Artikel wird erläutert, wie Sie mit PHP und Apache Solr eine Suchmaschine erstellen. Durch eine detaillierte Erläuterung der Grundfunktionen, Verwendungsmethoden und Kombination mit PHP von Solr können Leser schnell die Verwendung von Solr beherrschen und PHP zum Schreiben von Suchmaschinencode verwenden. Solr bietet leistungsstarke Such- und Analysefunktionen und eignet sich ideal zum Aufbau verschiedener Arten von Suchmaschinen.
Das obige ist der detaillierte Inhalt vonAufbau einer Suchmaschine mit PHP und Apache Solr. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!