Heim  >  Artikel  >  Backend-Entwicklung  >  Aufbau einer Suchmaschine mit PHP und Apache Solr

Aufbau einer Suchmaschine mit PHP und Apache Solr

王林
王林Original
2023-06-25 08:28:031229Durchsuche

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:

  1. Effizienz: Solr kann große Datenmengen verarbeiten und bei Abfragen schnell die benötigten Informationen finden.
  2. Skalierbarkeit: Solr kann auf Hunderte von Servern erweitert werden und unterstützt die horizontale Erweiterung.
  3. Benutzerfreundlichkeit: Solr unterstützt mehrere Abfragesprachen und Datenformate und die Konfiguration und Bereitstellung sind relativ einfach.

3. Wie verwende ich Apache Solr?

  1. Apache Solr installieren

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/).

  1. Index erstellen

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:

  1. field: definiert das Indexfeld und den Datentyp.
  2. copyField: Definieren Sie Regeln für das Kopieren von einem Feld in ein anderes.
  3. uniqueKey: Definiert die eindeutige Kennung des indizierten Dokuments.

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.

  1. Daten abfragen

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:

  1. Abfragebedingung: Titel ist Solr.
  2. Filterbedingung: Inhalt enthält „Open Source“.
  3. Sortieren: Sortiert nach ID in absteigender Reihenfolge.
  4. Paging: Nehmen Sie ab dem 0. Datensatz 10 Datensätze.
  5. Rückgabefelder: Es werden nur Titel- und ID-Felder zurückgegeben.

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?

  1. Index 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.

  1. Daten abfragen

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.

  1. Daten anzeigen

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn