Heim  >  Artikel  >  Backend-Entwicklung  >  Entwicklung mehrsprachiger Suchfunktionen mit PHP und Manticore Search

Entwicklung mehrsprachiger Suchfunktionen mit PHP und Manticore Search

WBOY
WBOYOriginal
2023-08-06 09:13:42862Durchsuche

Entwickeln Sie mehrsprachige Suchfunktionen mit PHP und Manticore Search

Mit der rasanten Entwicklung der Globalisierung müssen immer mehr Websites und Anwendungen mehrsprachige Suchfunktionen unterstützen, um den Anforderungen globaler Benutzer gerecht zu werden. In diesem Artikel wird anhand von Codebeispielen erläutert, wie Sie PHP und Manticore Search (eine Hochleistungssuchmaschine, die auf der Open-Source-Suchmaschine Sphinx basiert) verwenden, um mehrsprachige Suchfunktionen zu implementieren.

  1. Manticore Search installieren

 Zuerst müssen wir Manticore Search auf dem Server installieren und konfigurieren. Informationen zum Abschließen der Installation finden Sie in der offiziellen Dokumentation von Manticore Search (https://manual.manticoresearch.com/Installation).

  1. Datenimport

Vor der Suche müssen wir die zu durchsuchenden Daten in Manticore Search importieren. Angenommen, wir haben eine Tabelle mit dem Namen „products“, die Produktinformationen enthält, die mehrsprachige Felder wie „product_name_en“ und „product_name_cn“ enthält.

Zuerst müssen wir den Index von Manticore Search einrichten. Sie können das von Manticore Search bereitgestellte Befehlszeilentool verwenden, um diesen Schritt abzuschließen.

$ indexer -c /path/to/manticore.conf --all

  Dann können wir die von Manticore Search bereitgestellte MySQL-Schnittstelle verwenden, um Daten zu importieren. Zuerst müssen wir eine MySQL-Verbindung erstellen.

$mysqli = new mysqli('host', 'user', 'password', 'database');
if ($mysqli->connect_errno) {
    die("Failed to connect to MySQL: " . $mysqli->connect_error);
}

Als nächstes können wir SQL-Anweisungen verwenden, um Daten in Manticore Search einzufügen.

$sql = 'SELECT id, product_name_en, product_name_cn FROM products';
$result = $mysqli->query($sql);

$all_rows = '';
while ($row = $result->fetch_assoc()) {
    $all_rows .= '(' . $row['id'] . ', "' . $row['product_name_en'] . '", "' . $row['product_name_cn'] . '"),';
}

$all_rows = rtrim($all_rows, ',');
$sql = 'REPLACE INTO products (id, product_name_en, product_name_cn) VALUES ' . $all_rows;

$mysqli->query($sql);
if ($mysqli->error) {
    die("Failed to insert data into Manticore Search: " . $mysqli->error);
}

 Mit dem obigen Code haben wir die Daten erfolgreich in Manticore Search importiert.

  1. Mehrsprachige Suche

Als nächstes müssen wir PHP-Code schreiben, der die mehrsprachige Suche unterstützen kann.

$query = 'apple';

// 根据当前语言选择搜索字段
$language = 'en';
if ($language === 'cn') {
    $search_field = 'product_name_cn';
} else {
    $search_field = 'product_name_en';
}

// 连接Manticore Search的搜索接口
$cl = new ManticoreSearchClient();
$cl->connect();

// 执行搜索
$result = $cl->search('products', $query, array('index' => 'products', 'field_weights' => array($search_field => 100)));

// 解析搜索结果
$matches = array();
if ($result['total'] > 0) {
    foreach ($result['matches'] as $match) {
        $matches[] = $match['attrs']['id'];
    }
}

// 查询原始数据
$sql = 'SELECT * FROM products WHERE id IN (' . implode(',', $matches) . ')';
$result = $mysqli->query($sql);

while ($row = $result->fetch_assoc()) {
    echo $row['product_name_en'] . '<br>';
}

Über den obigen Code können wir das entsprechende Suchfeld basierend auf der aktuellen Sprache auswählen und eine Suche basierend auf den Suchbegriffen durchführen. Schließlich können wir relevante Suchergebnisse über die Originaldatentabelle erhalten.

Zusammenfassung

 In diesem Artikel wird erläutert, wie Sie mithilfe von PHP und Manticore Search mehrsprachige Suchfunktionen entwickeln. Mit dem obigen Beispielcode können wir problemlos mehrsprachige Suchfunktionen implementieren, um den Anforderungen globaler Benutzer gerecht zu werden. Gleichzeitig bietet Manticore Search zahlreiche Konfigurationsmöglichkeiten und Bedienoberflächen, um die Suchleistung und -funktionen weiter zu optimieren.

Ich hoffe, dass dieser Artikel für Freunde hilfreich sein kann, die mehrsprachige Suchfunktionen entwickeln. Wenn Sie Fragen haben, können Sie gerne eine Nachricht im Kommentarbereich hinterlassen.

Das obige ist der detaillierte Inhalt vonEntwicklung mehrsprachiger Suchfunktionen 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