Heim > Backend-Entwicklung > Golang > Suchen und Abfragen mit Solr in Beego

Suchen und Abfragen mit Solr in Beego

WBOY
Freigeben: 2023-06-23 10:54:38
Original
1522 Leute haben es durchsucht

Beego ist ein schnelles Go-Sprach-Webframework und Solr ist ein Lucene-basierter Such- und Abfrageserver. Durch die Kombination beider Funktionen können Webanwendungen effiziente Suchfunktionen bereitgestellt werden. In diesem Artikel wird erläutert, wie Sie Solr für die Suche und Abfrage in Beego verwenden.

Schritt 1: Solr installieren
Bevor Sie Solr verwenden, müssen Sie zunächst Solr installieren. Solr kann die neueste Version der Binärdateien von der offiziellen Website herunterladen (https://lucene.apache.org/solr/). Dekomprimieren Sie Solr nach dem Herunterladen in ein lokales Verzeichnis, geben Sie das dekomprimierte Verzeichnis ein und führen Sie den folgenden Befehl aus, um Solr zu starten:

./bin/solr start

Nachdem Solr gestartet wurde, können Sie im Browser auf die Solr-Verwaltungsoberfläche zugreifen ( http://localhost:8983/solr/). Wenn Sie die Solr-Verwaltungsoberfläche sehen, wurde Solr erfolgreich installiert.

Schritt 2: Solr-Index erstellen
Bevor Sie Solr ausführen, müssen Sie zuerst den Index definieren. Ein Solr-Index ist eine Sammlung von Daten mit einer bestimmten Struktur, die zum Speichern von Textdaten verwendet wird, die für Suchen und Abfragen erforderlich sind. Damit Solr Suchfunktionen für unsere Beego-Anwendung bereitstellen kann, müssen wir einen Index erstellen, der zu unserem Datenmodell passt. Die Definition eines Solr-Index besteht aus einer Reihe spezieller XML-Dateien, den sogenannten Solr-Konfigurationsdateien. Das Erstellen einer Solr-Konfigurationsdatei kann mit den Verwaltungstools der Solr-Instanz oder durch manuelles Bearbeiten der XML-Datei erfolgen.

Der erste Schritt beim Erstellen eines Solr-Index besteht darin, eine Schema.xml-Datei zu definieren. Diese Datei definiert, welche Feldinformationen der Solr-Index enthält, welche Spalte als Primärschlüssel verwendet werden soll, die Art der Felder, die Operationen der einzelnen Felder usw. Um eine Schema.xml mit zwei Feldern zu erstellen, können Sie der Datei manuell den folgenden Inhalt hinzufügen:


<fields>
    <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false"/>
    <field name="title" type="string" indexed="true" stored="true" />
</fields>
<uniqueKey>id</uniqueKey>
Nach dem Login kopieren

Im obigen Beispiel haben wir eine Schema.xml definiert, die zwei Felder enthält: einen Primärschlüssel namens „id“ und einen Titel namens „title“. ". Der nächste Schritt besteht darin, die Datei Index.xml zur Solr-Konfigurationsdatei hinzuzufügen. Die Datei Index.xml ist eine XML-Datei, die die zu erstellende Solr-Indexstruktur angibt. Hier ist ein Beispiel einer Index.xml-Datei:


<schema name="example-index" />
Nach dem Login kopieren

Der obige Inhalt wird Solr Die Konfigurationsdatei des Index wird als Beispielindex konfiguriert und stellt sicher, dass der Beispielname durch den tatsächlichen Indexnamen ersetzt wird. Nach Abschluss der beiden oben genannten Schritte wurde die Solr-Index-Konfigurationsdatei erfolgreich erstellt. Um diesen Index in Solr zu verwenden, müssen Sie den Index in die Solr-Instanz hochladen:

./bin/solr create -c example-index -d ./conf

Dieser Befehl erstellt eine Instanz mit dem Namen „example-index“. Erstellen Sie einen neuen Index und verweisen Sie den Konfigurationsordner von Solr auf den Ordner „conf“ im aktuellen Verzeichnis.

Schritt 3: Solr in Beego verwenden
Um Solr in Beego verwenden zu können, müssen Sie die Solr-Clientbibliothek der Go-Sprache installieren. Der in der Bibliothek enthaltene Befehl kann auf GitHub ausgecheckt werden:

go get github.com/rtt/Go-Solr

In der Beego-Anwendung müssen Sie zunächst eine Solr-Verbindung erstellen. Dies kann durch Erstellen eines neuen Solr-Objekts erfolgen:

import (

"github.com/rtt/Go-Solr"
Nach dem Login kopieren

)

func main() {

s, err := solr.Init("http://localhost:8983/solr")
if err != nil {
    panic(err)
}
Nach dem Login kopieren

}

Als nächstes kann das Solr-Objekt zum Durchführen von Such- und Abfragevorgängen verwendet werden. Hier ist ein Beispiel, das zeigt, wie eine Textabfrage in Solr durchgeführt wird:

import (

"fmt"
"github.com/rtt/Go-Solr"
Nach dem Login kopieren

)

func main() {

s, err := solr.Init("http://localhost:8983/solr")
if err != nil {
    panic(err)
}

query := solr.NewQuery()
query.Q("title:Solr")
res, err := s.Search("example-index", query)
if err != nil {
    fmt.Printf("Error searching: %s
Nach dem Login kopieren

", err)

} else {
    fmt.Printf("Found %d results:
Nach dem Login kopieren

", res.Results.NumFound)

    for _, doc := range res.Results.Docs {
        fmt.Printf("- id:%s title:%s
Nach dem Login kopieren

" , doc["id"], doc["title"])

    }
}
Nach dem Login kopieren

}

Im obigen Beispiel wird zuerst ein Solr-Abfrageobjekt erstellt und dann bei der Suche verwendet. Nach der Suche kann es mit dem Ergebnissatz durchlaufen werden Sehen Sie sich die ID und den Titel jedes passenden Dokuments an.

Fazit: Die Verwendung von Solr bietet leistungsstarke Such- und Abfragefunktionen für Beego-Anwendungen. In diesem Artikel haben wir die Verwendung der Go-Sprache vorgestellt Durch die Kombination dieser Methoden können Beego-Anwendungen auf einfache Weise effiziente Suchfunktionen hinzugefügt werden
.

Das obige ist der detaillierte Inhalt vonSuchen und Abfragen mit Solr in Beego. 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