Heim >PHP-Framework >Laravel >Über die richtige Haltung bei der Verwendung von es in Laravel
Die folgende Tutorial-Kolumne von Laravel führt Sie in die richtige Haltung bei der Verwendung von es in Laravel ein. Ich hoffe, dass sie Freunden in Not hilfreich sein wird!
Die unterste Ebene von
Lastic ist die Open-Source-Bibliothek Lucene. Sie können Lucene jedoch nicht direkt verwenden, Sie müssen Ihren eigenen Code schreiben, um seine Schnittstelle aufzurufen. Elastic ist ein Paket von Lucene und bietet eine REST-API-Betriebsschnittstelle, die sofort verwendet werden kann.
"Elasticsearch Full Text Search Practical Combat"(Praktisches Video)Aus dem Kurs"Ten Million Level Data Concurrency Solution (Theory + Practical Combat)"
ES und Mysql
Das Konzept in ES ist analog zu Mysql, wie in der folgenden Abbildung dargestellt:
Invertierter Index
Bevor wir über den invertierten Index sprechen, wollen wir zunächst darüber sprechen, was ein Vorwärtsindex ist. Der Vorwärtsindex wird auch als „Vorwärtsindex“ bezeichnet und ist die Grundlage für die Erstellung eines invertierten Index. Wie oben erwähnt, müssen bei der Abfrage, in welchen Dokumenten ein Schlüsselwort enthalten ist, alle Dokumente gescannt werden, um sicherzustellen, dass es keine Auslassungen gibt. Dies verlängert die Abrufzeit erheblich und verringert die Abrufeffizienz. Zu diesem Zeitpunkt verwendeten wir den invertierten Index und segmentierten das Dokument zunächst in Wörter.
Zum Beispiel wollen wir abfragen, in welchen Dokumenten das Stichwort „Suchmaschine“ vorkommt. Zuerst können wir den invertierten Index verwenden, um die Dokumentpositionen abzufragen, an denen das Schlüsselwort in 1 und 3 vorkommt. Anschließend können wir den Inhalt der Dokumente 1 und 3 über den Vorwärtsindex abfragen und die Ergebnisse zurückgeben.
Laravel verwendet ES
2) Veröffentlicht
$ PHP Artisan Vendor: Publish – PROvider = "BasemkhiratelasticSearchServiceProvider"Konfiguration
Wir werden es installieren, da wir mit unserer Verbindung verbunden sind:
'connections' => [ 'default' => [ 'servers' => [ [ "host" => env("ELASTIC_HOST", "127.0.0.1"), "port" => env("ELASTIC_PORT", 9200), 'user' => env('ELASTIC_USER', ''), 'pass' => env('ELASTIC_PASS', ''), 'scheme' => env('ELASTIC_SCHEME', 'http'), ] ], 'index' => env('ELASTIC_INDEX', 'my_index') ]],e Unsere Clusterkonfiguration kann zu Servern hinzugefügt werden.
So verwenden Sie
Dieses Plug-in kann als Referenz im Abfrage-Builder von Laravel verwendet werden und unterstützt häufig verwendete Plug-ins wie
.
$documents = ES::connection(“default”) { function($search){ $search->boost(2)->fields([" title" => 2, "content" => 1])})->get();
Wir können auch den Quellcode ändern, um die von uns benötigten Methoden zu erweitern oder native Abfrageanweisungen zu erstellen:$params['body'] = [ 'aggs' => [ 'all_created' => [ 'terms' => [ 'field' => 'element.raw', 'size' => $this->_mAggsPageSize ], 'aggs' => [ 'sum_pv' => [ 'sum' => ['field' => 'pv'], ], ], ], ], ];
EpilogDer integrierte Wortsegmentierer von
ES unterstützt die mittlere Segmentierung nicht. Der empfehlenswertere ist der IK-Wortsegmentierer. Es ist zu beachten, dass die ik-Version mit der ES-Versionsnummer übereinstimmen muss.
Das obige ist der detaillierte Inhalt vonÜber die richtige Haltung bei der Verwendung von es in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!