Mit der raschen Erhöhung der Informationsmenge steigen die Anforderungen der Benutzer an die Genauigkeit der Suchergebnisse ständig. Traditionelle Suchmaschinen sind schwierig, die Bedürfnisse mehrdimensionaler genaues Suchanfragen zu erfüllen. Daher ist es besonders wichtig, eine flexible und effiziente Suchfilterfunktion zu erstellen.
Manticore Search ist eine Open-Source-Suchmaschine mit Hochleistungs-Volltext, die schnelle Skalierung und komplexe Abfragen unterstützt. Sie können die Manticore -Suche aus dem offiziellen Kanal herunterladen und installieren, um nachfolgende Entwicklung und Verwendung zu erhalten.
Die Indizierung ist die Grundlage für die Volltext-Suche. Das folgende Beispiel zeigt, wie ein Index mit Titel-, Inhalts- und Klassifizierungsfeldern über PHP erstellt wird:
<?php
require 'vendor/autoload.php';
use ManticoresearchClient;
use ManticoresearchIndex;
use ManticoresearchExceptionsRuntimeException;
use ManticoresearchQueryBoolQuery;
use ManticoresearchQueryQuery;
try {
$client = new Client(['host' => 'localhost', 'port' => 9308]);
$index = new Index($client);
$index->create([
'index' => 'myindex',
'type' => 'mytype',
'fields' => [
'title' => ['type' => 'text'],
'content' => ['type' => 'text'],
'category' => ['type' => 'text']
]
]);
echo "Index created successfully.";
} catch (RuntimeException $e) {
echo $e->getMessage();
}
?>
Der obige Code erstellte erfolgreich einen Index mit dem Namen "MyIndex", der die erforderlichen Textfelder enthält, und die Feldstruktur kann entsprechend den tatsächlichen Anforderungen angepasst werden.
Nachdem der Index erstellt wurde, können Sie das folgende Code-Beispiel verwenden, um die Volltext-Suche nach Schlüsselwörtern zu implementieren und die Übereinstimmung in den Bereichen Titel-, Inhalts- und Klassifizierungsfelder zu unterstützen:
<?php
require 'vendor/autoload.php';
use ManticoresearchClient;
use ManticoresearchQueryBoolQuery;
use ManticoresearchQueryQuery;
$client = new Client(['host' => 'localhost', 'port' => 9308]);
$boolQuery = new BoolQuery();
$query = new Query($client);
$boolQuery->addShould($query->match('title', 'keyword'));
$boolQuery->addShould($query->match('content', 'keyword'));
$boolQuery->addShould($query->match('category', 'keyword'));
$query->bool($boolQuery);
$result = $query->search('myindex', 'mytype');
print_r($result);
?>
Dieser Code führt die Suche nach dem Keyword "Keyword" durch, in dem mehrere Felder übereinstimmen, um die Erfüllung der verschiedenen Anforderungen an die Abfrage zu ermöglichen.
Basierend auf der Volltext-Suche kann das Hinzufügen von Filterbedingungen weiterhin genau ergeben. Das folgende Beispiel zeigt, wie man Suchergebnisse filtert, z. B. das Filtern bestimmter Kategorien:
<?php
require 'vendor/autoload.php';
use ManticoresearchClient;
use ManticoresearchQueryBoolQuery;
use ManticoresearchQueryQuery;
$client = new Client(['host' => 'localhost', 'port' => 9308]);
$boolQuery = new BoolQuery();
$query = new Query($client);
$boolQuery->addMust($query->match('title', 'keyword'));
$boolQuery->addFilter($query->term('category', 'news'));
$query->bool($boolQuery);
$result = $query->search('myindex', 'mytype');
print_r($result);
?>
Durch das Hinzufügen von Filterbedingungen kann der Suchbereich effektiv verengt werden und die Relevanz und Genauigkeit der Suchergebnisse kann verbessert werden.
In diesem Artikel wird vorgestellt, wie man die PHP- und Manticore -Suche kombiniert, um die intelligente Suchfilterfunktion zu implementieren. Es deckt wichtige Schritte wie Umgebungskonstruktion, Indexerstellung, Volltext-Suche und bedingte Filterung ab. Ich hoffe, es wird Ihre Suchmaschinenentwicklung inspirieren und Ihnen helfen, ein intelligentes Sucherlebnis zu erstellen, das eher den Benutzerbedürfnissen entspricht.