Sphinx schreibt Beispielanalysen für effiziente Suchfunktionen

WBOY
Freigeben: 2023-10-03 09:16:02
Original
743 Leute haben es durchsucht

Sphinx 编写高效的搜索功能实例解析

Sphinx ist eine Open-Source-Volltextsuchmaschine, die umfangreiche Textsuchanforderungen effizient bewältigen kann. In diesem Artikel wird anhand eines Beispiels analysiert, wie mit Sphinx effiziente Suchfunktionen geschrieben werden, und es werden spezifische Codebeispiele bereitgestellt.

  1. Sphinx installieren
    Zuerst müssen wir Sphinx auf dem Server installieren. Sie können die neueste Version des Installationsprogramms von der offiziellen Sphinx-Website (https://sphinxsearch.com/) herunterladen und gemäß den Anweisungen installieren.
  2. Erstellen Sie einen Index
    Bevor wir mit dem Schreiben der Suchfunktion beginnen, müssen wir zunächst einen Index erstellen, um die zu durchsuchenden Textdaten zu speichern. Angenommen, unsere Anwendung muss nach Informationen zu einigen Produkten suchen. Jedes Produkt enthält Attribute wie Titel, Beschreibung und Preis. Wir können einen Index namens „Produkte“ erstellen.

    Erstellen Sie zunächst eine mit Sphinx verbundene MySQL-Datenbank und importieren Sie Produktdaten. Angenommen, wir haben eine Datenbank namens „products“ und eine Tabelle namens „product_info“, die Felder wie den Titel, die Beschreibung und den Preis des Produkts enthält.

    Als nächstes müssen wir eine Konfigurationsdatei erstellen, die für den Index „Produkte“ geeignet ist. Erstellen Sie eine Datei mit dem Namen „products.conf“ und fügen Sie den folgenden Inhalt hinzu:

    source products
    {
        type = mysql
        sql_host = localhost
        sql_user = username
        sql_pass = password
        sql_db = products
        sql_port = 3306
    
        sql_query = SELECT id, title, description, price FROM product_info
        sql_attr_uint = price
    }
    
    index products
    {
        source = products
        path = /path/to/index/products
        charset_type = utf-8
    }
    Nach dem Login kopieren

    Dies gibt die Verbindungsinformationen und die Abfrageanweisung für die MySQL-Datenbank an. „sql_attr_uint = Preis“ bedeutet, dass das Preisfeld ein Attribut vom Typ „Unsigned Integer“ ist.

    Schließlich erstellen Sie den Index mit dem folgenden Befehl:

    $ indexer --config /path/to/products.conf --all
    Nach dem Login kopieren
  3. Schreiben der Suchfunktion
    Jetzt können wir mit dem Schreiben der Suchfunktion von Sphinx beginnen. Hier ist ein einfaches PHP-Beispiel:

    <?php
    require('sphinxapi.php');
    
    $sphinx = new SphinxClient();
    $sphinx->setServer('localhost', 9312);
    
    $keyword = $_GET['keyword'];
    
    $sphinx->setMatchMode(SPH_MATCH_ANY);
    $sphinx->setSortMode(SPH_SORT_RELEVANCE);
    
    $result = $sphinx->query($keyword, 'products');
    
    if ($result['total'] > 0) {
        foreach ($result['matches'] as $match) {
            echo 'ID: ' . $match['id'] . '<br>';
            echo 'Title: ' . $match['attrs']['title'] . '<br>';
            echo 'Description: ' . $match['attrs']['description'] . '<br>';
            echo 'Price: ' . $match['attrs']['price'] . '<br><br>';
        }
    } else {
        echo 'No results found.';
    }
    ?>
    Nach dem Login kopieren

    Dieser Code erstellt zunächst ein SphinxClient-Objekt und gibt die Adresse und Portnummer des Sphinx-Servers an. Empfangen Sie dann die vom Benutzer eingegebenen Schlüsselwörter und legen Sie den Übereinstimmungsmodus und den Sortiermodus fest.

    Rufen Sie abschließend die Methode query() auf, um die Suche durchzuführen, und durchlaufen Sie die Ergebnisse, um die passenden Produktinformationen auszudrucken.

  4. Führen Sie den Test aus
    Speichern Sie den obigen Code als PHP-Datei (z. B. search.php) und stellen Sie ihn auf Ihrem Webserver bereit. Sie können dann suchen, indem Sie auf search.php?keyword=keyword zugreifen.

    Wenn Sie beispielsweise http://yourdomain.com/search.php?keyword=mobile phone besuchen, wird nach Produkten gesucht, die das Schlüsselwort „mobile phone“ enthalten, und die Ergebnisse werden auf der Seite angezeigt.

Durch die oben genannten Schritte haben wir eine effiziente Suchfunktion auf Basis von Sphinx implementiert. Sphinx bietet zahlreiche Konfigurationsoptionen und Abfragesyntax, um die Suchleistung entsprechend den tatsächlichen Anforderungen zu optimieren. Wir hoffen, dass die in diesem Artikel bereitgestellten Codebeispiele den Lesern helfen können, Sphinx zu verstehen und zum Schreiben effizienter Suchfunktionen zu verwenden.

Das obige ist der detaillierte Inhalt vonSphinx schreibt Beispielanalysen für effiziente Suchfunktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!