Heim  >  Artikel  >  Backend-Entwicklung  >  Entwickeln Sie schnelle Suchaufforderungen mit PHP und Manticore Search

Entwickeln Sie schnelle Suchaufforderungen mit PHP und Manticore Search

WBOY
WBOYOriginal
2023-08-05 22:25:05720Durchsuche

Verwenden Sie PHP und Manticore Search, um eine schnelle Suchaufforderungsfunktion zu entwickeln

Einführung

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.

Einführung in Manticore Search

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.

Vorbereitung

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子句来匹配索引中的内容,我们可以获取与关键字匹配的结果。

在这个例子中,我们对namerrreee

Nach erfolgreicher Installation müssen wir diese Erweiterung in der PHP-Erweiterungskonfigurationsdatei aktivieren. Wir können die folgende Zeile in php.ini hinzufügen:

rrreee

Starten Sie PHP neu, damit die Änderungen wirksam werden.

Indexierung

Bevor 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 eine Client-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!

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