Heim >Backend-Entwicklung >PHP-Tutorial >PHP- und Manticore-Suchentwicklung: Aufbau einer Tag-basierten Suchmaschine

PHP- und Manticore-Suchentwicklung: Aufbau einer Tag-basierten Suchmaschine

WBOY
WBOYOriginal
2023-08-06 08:38:001519Durchsuche

PHP- und Manticore-Suchentwicklung: Aufbau einer Tag-basierten Suchmaschine

Suchmaschinen sind ein wichtiger Bestandteil des heutigen Internets, der die von Benutzern benötigten Informationen aus großen Datenmengen schnell abfragen, abgleichen und präsentieren kann. Allerdings bieten herkömmliche Suchmaschinen oft nur grundlegende Volltext-Recherchefunktionen, die für eine präzise Suche und Filterung von Daten nicht ausreichen. In diesem Artikel stellen wir vor, wie Sie mit PHP und Manticore Search eine Tag-basierte Suchmaschine erstellen, um ein präziseres und effizienteres Sucherlebnis zu ermöglichen.

Manticore Search ist eine Volltextsuchmaschine, die auf Basis der Open-Source-Suchmaschine Sphinx entwickelt wurde. Es bietet nicht nur schnelle und leistungsstarke Volltextsuchfunktionen, sondern unterstützt auch Indexaktualisierungen in Echtzeit und komplexe Abfragesyntax. PHP ist eine beliebte serverseitige Skriptsprache mit einer breiten Palette an Anwendungen und umfangreichen Entwicklungsbibliotheken.

Bevor wir beginnen, müssen wir Manticore Search installieren. Es kann wie folgt installiert werden:

  1. Laden Sie Manticore Search herunter und installieren Sie es:

    $ wget https://github.com/manticoresoftware/manticoresearch/releases/download/3.6.0/manticore-3.6.0-200714-58157c26-release.tar.gz
    $ tar -xvf manticore-3.6.0-200714-58157c26-release.tar.gz
    $ cd manticore-3.6.0/bin
    $ ./searchd
  2. Index erstellen:

    $ ./searchd
    $ mysql -P9306 -e "CREATE TABLE documents (id int, title text, content text, tags multi)"
    $ mysql -P9306 -e "INSERT INTO documents VALUES (1, 'Document 1', 'This is the content of document 1', 'php, search')"
    $ mysql -P9306 -e "INSERT INTO documents VALUES (2, 'Document 2', 'This is the content of document 2', 'mysql, database')"
    $ mysql -P9306 -e "INSERT INTO documents VALUES (3, 'Document 3', 'This is the content of document 3', 'php, database')"

Nachdem wir nun die Installation und Indexerstellung von Manticore Search abgeschlossen haben, fahren wir fort zum PHP-Code-Schreibprozess.

Zuerst müssen wir die Manticore Search-Erweiterung für PHP installieren. Es kann wie folgt installiert werden:

  1. Laden Sie die Erweiterung herunter und kompilieren Sie sie:

    $ git clone https://github.com/manticoresoftware/php-manticore.git
    $ cd php-manticore
    $ phpize
    $ ./configure
    $ make
    $ sudo make install
  2. Aktivieren Sie die Erweiterung in der php.ini-Datei:

    extension=manticore.so

Nach Abschluss der obigen Schritte können wir mit dem Schreiben von PHP beginnen Code zum Erstellen der Tag-basierten Suchmaschine. Hier ist ein Beispielcode:

<?php
$host = 'localhost';
$port = 9306;
$index = 'default';
$query = 'php';

// 连接Manticore Search
$conn = new ManticoreSearchConnection();
$conn->connect($host, $port);

// 创建查询
$search = new ManticoreSearchSearch($conn);
$search->index($index);
$search->limit(10);
$search->setMatchMode(ManticoreSearchSearch::SPH_MATCH_EXTENDED);

// 添加标签过滤条件
$search->setFilter('tags', [$query], true);

// 发送查询请求
$result = $search->query('');

// 处理查询结果
if (!empty($result['matches'])) {
    foreach ($result['matches'] as $match) {
        echo 'ID: ' . $match['id'] . '<br>';
        echo 'Title: ' . $match['attrs']['title'] . '<br>';
        echo 'Content: ' . $match['attrs']['content'] . '<br>';
        echo 'Tags: ' . $match['attrs']['tags'] . '<br><br>';
    }
} else {
    echo 'No results found.';
}

// 关闭连接
$conn->close();

Der obige Code zeigt, wie Manticore Search für die Tag-basierte Suche verwendet wird. Wir haben zuerst ein Verbindungsobjekt über die ManticoreSearchConnection-Klasse und dann ein Abfrageobjekt über die ManticoreSearchSearch-Klasse erstellt. Wir geben den Index der Abfrage und die maximale Anzahl zurückgegebener Ergebnisse an, indem wir die Index- und Limit-Attribute festlegen. Als Nächstes legen wir die Filterkriterien für das Tag fest, sodass nur Dokumente zurückgegeben werden, die dieses Tag enthalten.

Abschließend senden wir die Abfrageanforderung durch Aufruf der Abfragemethode und verarbeiten die zurückgegebenen Ergebnisse. Wenn das Abfrageergebnis nicht leer ist, können wir das Übereinstimmungsarray durchlaufen und die entsprechende Dokument-ID, den Titel, den Inhalt und die Tags ausgeben. Wenn das Abfrageergebnis leer ist, wird „Keine Ergebnisse gefunden“ ausgegeben.

Durch die oben genannten Schritte haben wir erfolgreich eine Tag-basierte Suchmaschine mit PHP und Manticore Search erstellt. Durch eine angemessene Indexstruktur und Abfragebedingungen können wir genauere und effizientere Suchfunktionen erreichen, um den personalisierten Bedürfnissen der Benutzer gerecht zu werden. Ich hoffe, dass dieser Artikel für Leser hilfreich sein wird, die PHP und Manticore Search für die Suchmaschinenentwicklung verwenden.

Das obige ist der detaillierte Inhalt vonPHP- und Manticore-Suchentwicklung: Aufbau einer Tag-basierten Suchmaschine. 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