Heim  >  Artikel  >  Backend-Entwicklung  >  Entwickeln Sie eine automatische Suchvervollständigungsfunktion mit PHP und Manticore Search

Entwickeln Sie eine automatische Suchvervollständigungsfunktion mit PHP und Manticore Search

WBOY
WBOYOriginal
2023-08-07 22:53:061420Durchsuche

Entwickeln Sie eine Funktion zur automatischen Vervollständigung der Suche mit PHP und Manticore Search.

Einführung:
Im heutigen Internetzeitalter ist die Suchfunktion zu einem wichtigen Bestandteil vieler Anwendungen und Websites geworden. Die Funktion zur automatischen Vervollständigung der Suche ist ein Schlüsselelement zur Verbesserung der Benutzererfahrung und Suchgenauigkeit. In diesem Artikel erfahren Sie, wie Sie mithilfe von PHP und Manticore Search eine Funktion zur automatischen Vervollständigung der Suche entwickeln, damit Benutzer schneller finden, was sie suchen.

1. Was ist Manticore Search?
Manticore Search ist eine Volltextsuchsoftware, die auf der Open-Source-Suchmaschine Sphinx basiert. Im Vergleich zu herkömmlichen Suchmaschinen bietet Manticore Search schnellere Indexierungs- und Suchgeschwindigkeiten, bessere Fehlertoleranz und Skalierbarkeit. Es unterstützt Volltextsuche, Facettensuche, geografische Standortsuche und andere Funktionen und eignet sich für verschiedene Anwendungsszenarien.

2. Erstellen Sie einen Manticore-Suchindex
Zuerst müssen wir einen Manticore-Suchindex erstellen, um den zu durchsuchenden Inhalt zu speichern. Ein Index mit dem Namen „autocomplete“ kann mit dem folgenden Befehl erstellt werden:

index autocomplete
{
    type = rt
    rt_mem_limit = 512M
    path = /var/lib/manticore/autocomplete
    charset_table = utf-8
    min_prefix_len = 2
    min_word_len = 2
}

In diesem Index gibt rt_mem_limit das Speicherlimit an, path gibt den Dateispeicherpfad des Index an, charset_table gibt den Zeichensatz an, min_prefix_len und min_word_len geben das minimale Präfix an Länge und minimale Wortlänge.

3. Dokumente zum Index hinzufügen
Als nächstes müssen wir die zu durchsuchenden Dokumente zum Index hinzufügen. Dies kann durch das folgende PHP-Codebeispiel erreicht werden:

<?php
$client = new SphinxClient();
$client->setServer('localhost', 9312);
$client->setMatchMode(SPH_MATCH_ANY);
$client->setFieldWeights(array('title' => 10, 'content' => 1));

$documents = array(
    array(
        'id' => 1,
        'title' => 'PHP开发',
        'content' => 'PHP是一种广泛使用的开源脚本语言,它特别适用于Web开发。',
    ),
    array(
        'id' => 2,
        'title' => 'Manticore Search',
        'content' => 'Manticore Search是一个基于Sphinx的全文搜索软件,提供了更快的索引和搜索速度。',
    ),
    // 添加更多文档...
);

foreach ($documents as $document) {
    $client->addDocument($document['title'], $document['content'], $document['id']);
}

$result = $client->runQueries();
?>

Im obigen Code verwenden wir die SphinxClient-Klasse, eine Toolklasse für PHP zur Interaktion mit Manticore Search. Wir legen die Serveradresse und die Portnummer fest, stellen den Übereinstimmungsmodus auf „Beliebige Übereinstimmung“ ein, setzen die Gewichtung des Titels auf 10 und die Gewichtung des Inhalts auf 1. Anschließend werden die zu durchsuchenden Dokumente über eine Schleife nacheinander zum Index hinzugefügt.

4. Funktion zur automatischen Vervollständigung der Suche implementieren
Um die Funktion zur automatischen Vervollständigung der Suche zu implementieren, können wir die Echtzeit-Indexfunktion von Manticore Search verwenden. Die Live-Indizierung kann schnell aktualisiert und durchsucht werden und ermöglicht so ein Such-Feedback in Echtzeit.

Die automatische Vervollständigung der Suche kann durch das folgende PHP-Codebeispiel erreicht werden:

<?php
$keyword = $_GET['keyword'];

$client->setMatchMode(SPH_MATCH_EXTENDED2);
$client->limit(0, 5); // 给出最多5个自动补全结果

$client->resetFilters();
$client->setFilter('prefix', '', array($keyword));

$result = $client->runQueries();
$suggestions = $result[0]['words'];

foreach ($suggestions as $suggestion) {
    echo $suggestion['word'];
}
?>

In diesem Code erhalten wir die vom Benutzer eingegebenen Suchbegriffe über eine GET-Anfrage. Stellen Sie dann den Abgleichsmodus über die Methode setMatchMode auf „Erweiterter Abgleich“ ein und legen Sie über die Methode „limit“ maximal 5 Ergebnisse für die automatische Vervollständigung fest, die zurückgegeben werden sollen. Verwenden Sie dann die setFilter-Methode, um die Suchbegriffe auf Ergebnisse zu beschränken, denen Schlüsselwörter vorangestellt sind. Schließlich wird die Suchabfrage über die runQueries-Methode ausgeführt und die Ergebnisse der Schlüsselwortvorschläge werden abgerufen. Verwenden Sie dann eine foreach-Schleife, um die Schlüsselwortvorschläge nacheinander auszugeben.

Zusammenfassung:
Mit PHP und Manticore Search können Sie die Funktion zur automatischen Vervollständigung der Suche einfach implementieren. Indem Sie einen Manticore-Suchindex erstellen, Dokumente hinzufügen und dann den Echtzeitindex und spezifische Suchabfrageanweisungen verwenden, können Sie die Funktion zur automatischen Vervollständigung der Suche schnell implementieren. Dies wird die Benutzererfahrung erheblich verbessern und Benutzern helfen, schneller zu finden, wonach sie suchen. Ich hoffe, dieser Artikel hilft Ihnen!

Das obige ist der detaillierte Inhalt vonEntwickeln Sie eine automatische Suchvervollständigungsfunktion 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