Heim > Artikel > Backend-Entwicklung > Entwickeln Sie schnelle Suchaufforderungen mit PHP und Manticore Search
Verwenden Sie PHP und Manticore Search, um eine schnelle Suchaufforderungsfunktion zu entwickeln
Heutzutage, mit der Entwicklung des Internets, sind Suchmaschinen zu einem der wichtigsten Werkzeuge für Menschen geworden, um Informationen zu erhalten. Benutzer verwenden normalerweise Schlüsselwörter, um nach Inhalten zu suchen, die sie interessieren, und Suchmaschinen liefern relevante Ergebnisse basierend auf diesen Schlüsselwörtern.
Herkömmliche Suchmethoden weisen jedoch einige Einschränkungen auf. Benutzer müssen vollständige Schlüsselwörter eingeben, um genaue Ergebnisse zu erhalten, was die Wartezeit des Benutzers verlängern kann. Um die Benutzererfahrung zu verbessern, können wir die Verwendung der Funktion „Schnellsuchaufforderungen“ in Betracht ziehen, die es Benutzern ermöglicht, bei der Eingabe von Schlüsselwörtern sofort relevante Suchvorschläge zu erhalten.
In diesem Artikel stellen wir vor, wie Sie PHP und Manticore Search verwenden, um die Schnellsuchaufforderungsfunktion zu implementieren.
Manticore Search ist eine Open-Source-Volltextsuchmaschine, die eine Abzweigung von Sphinx Search ist und eine höhere Leistung und mehr Funktionen bietet.
Manticore Search bietet eine Funktion namens „Vervollständigung“ zur Implementierung von Suchabfragen. Durch die Erstellung geeigneter Indizes und die Verwendung geeigneter Abfrageanweisungen können wir schnelle und genaue Suchvorschläge erzielen.
Bevor wir beginnen, müssen wir Manticore Search installieren und sicherstellen, dass PHP die Kommunikation mit Manticore Search unterstützt. Wir können die entsprechende Erweiterung über den Befehl pecl
installieren: pecl
命令来安装相关的扩展:
pecl install manticore
安装成功后,我们需要在PHP的扩展配置文件中启用这个扩展。我们可以在php.ini
中添加以下行:
extension=manticore.so
重启PHP以使更改生效。
在我们开始之前,我们需要准备一些数据并建立相应的索引。假设我们有一个名为"products"的表,包含了产品的名称和描述。
我们可以使用以下代码来建立索引:
<?php require_once 'ManticoreSearch.php'; $client = new ManticoreSearchClient([ 'host' => 'localhost', 'port' => 9306, ]); $client->connect(); $index = 'products'; $table = 'products'; $client->query("DELETE FROM $table WHERE 1"); $client->query("TRUNCATE RTINDEX $index"); $data = [ ['id' => 1, 'name' => 'iPhone X', 'description' => 'A revolutionary new iPhone.'], ['id' => 2, 'name' => 'Samsung Galaxy S9', 'description' => 'The latest Samsung smartphone.'], ['id' => 3, 'name' => 'Google Pixel 3', 'description' => 'A powerful Android phone.'], // 添加更多产品数据... ]; $client->index($table, $data); $client->query("ALTER RTINDEX $index ADD COLUMN completion TEXT"); $client->disconnect(); ?>
在上面的代码中,我们首先创建一个Client
实例,然后使用connect
方法连接到Manticore Search服务。接下来,我们清空并重建相应的表和索引。
接着,我们向表中添加一些产品的数据。确保将实际的产品数据添加到$data
数组中。
最后,我们使用ALTER RTINDEX
命令向索引添加一个用于存储搜索提示的列。
现在,我们已经准备好了数据和索引,可以开始创建搜索提示了。我们可以使用以下代码来实现:
<?php require_once 'ManticoreSearch.php'; $client = new ManticoreSearchClient([ 'host' => 'localhost', 'port' => 9306, ]); $client->connect(); $index = 'products'; $table = 'products'; $keyword = isset($_GET['keyword']) ? $_GET['keyword'] : ''; $query = "SELECT * FROM $index WHERE MATCH(:keyword) OPTION field_weights=(name=10, description=5) LIMIT 10"; $params = [ 'keyword' => "@(name,description) $keyword*", ]; $result = $client->query($query, $params); $suggestions = []; if ($result !== false) { foreach ($result['hits'] as $hit) { $suggestions[] = $hit['attrs']['name']; } } $client->disconnect(); echo json_encode($suggestions); ?>
在上面的代码中,我们首先创建一个Client
实例并进行连接。然后,我们定义了一个$keyword
变量,用于存储用户输入的关键字。
接着,我们使用SELECT
语句来执行查询。通过将用户输入的关键字作为查询的一部分,并使用MATCH
子句来匹配索引中的内容,我们可以获取与关键字匹配的结果。
在这个例子中,我们对name
rrreee
php.ini
hinzufügen: rrreee
Starten Sie PHP neu, damit die Änderungen wirksam werden. IndexierungBevor wir beginnen, müssen wir einige Daten vorbereiten und entsprechende Indizes erstellen. Angenommen, wir haben eine Tabelle mit dem Namen „Produkte“, die Produktnamen und -beschreibungen enthält. Wir können den folgenden Code verwenden, um den Index zu erstellen: 🎜rrreee🎜Im obigen Code erstellen wir zunächst eineClient
-Instanz und stellen dann über connect eine Verbindung zum Manticore Search-Dienst her. Code> Methode . Als nächstes leeren und erstellen wir die entsprechenden Tabellen und Indizes neu. 🎜🎜Als nächstes fügen wir der Tabelle einige Produktdaten hinzu. Stellen Sie sicher, dass Sie die tatsächlichen Produktdaten zum Array <code>$data
hinzufügen. 🎜🎜Abschließend verwenden wir den Befehl ALTER RTINDEX
, um dem Index eine Spalte zum Speichern von Suchhinweisen hinzuzufügen. 🎜🎜Suchtipps erstellen🎜🎜Da wir nun unsere Daten und den Index bereit haben, können wir mit der Erstellung von Suchtipps beginnen. Um dies zu erreichen, können wir den folgenden Code verwenden: 🎜rrreee🎜 Im obigen Code erstellen wir zunächst eine Client
-Instanz und stellen eine Verbindung her. Anschließend definieren wir eine Variable $keyword
, um das vom Benutzer eingegebene Schlüsselwort zu speichern. 🎜🎜Als nächstes verwenden wir die SELECT
-Anweisung, um die Abfrage auszuführen. Indem wir die vom Benutzer eingegebenen Schlüsselwörter als Teil der Abfrage einbeziehen und die MATCH
-Klausel verwenden, um den Inhalt im Index abzugleichen, können wir Ergebnisse erhalten, die den Schlüsselwörtern entsprechen. 🎜🎜In diesem Beispiel geben wir dem Feld name
eine höhere Gewichtung. Sie können die Feldstärke entsprechend der tatsächlichen Situation anpassen. 🎜🎜Abschließend konvertieren wir die Suchvorschläge in das JSON-Format und geben es aus. 🎜🎜Fazit🎜🎜In diesem Artikel haben wir gelernt, wie man PHP und Manticore Search verwendet, um eine schnelle Suchaufforderungsfunktion zu implementieren. Durch die Erstellung geeigneter Indizes und die Verwendung der richtigen Abfrageanweisungen können wir Benutzern ermöglichen, bei der Eingabe von Schlüsselwörtern sofort relevante Suchvorschläge zu erhalten. Dieser Ansatz kann das Sucherlebnis des Benutzers erheblich verbessern. 🎜🎜Aus Platzgründen enthält dieser Artikel nur einen einfachen Beispielcode, den Sie entsprechend Ihren Anforderungen ändern und erweitern können. Ich hoffe, dieser Artikel kann Ihnen dabei helfen, Manticore Search weiter zu erkunden und zu nutzen, um leistungsfähigere Suchfunktionen zu entwickeln. 🎜Das obige ist der detaillierte Inhalt vonEntwickeln Sie schnelle Suchaufforderungen mit PHP und Manticore Search. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!