Der Volltext-Suchdienst ist eine von der Open Source-Projekt
xunsearcheingekapsierte Volltext-Suchmaschine, und der Dienst wird noch verbessert.
1. Installieren Sie den Suchdienst über composer und geben Sie den folgenden Befehl ein, um die neueste Version zu installieren.
composer require antsfree/mxusearch dev-master
OR
composer require antsfree/mxusearch '^0.1'
2. Fügen Sie die folgenden Dienste in den Service -Array -Anbietern in config/app.php hinzu.
AntsfreeMxusearchMxusearchProvider::class
3. Fügen Sie die folgende Fassade in die Aliarays der Fassade in config/app.php hinzu.
'Mxusearch' => AntsfreeMxusearchMxusearch::class,
V. mxusearch.php
php artisan vendor:publish --provider="AntsfreeMxusearchMxusearchProvider"
5. Distributed Installation muss jedes laravel -Projekt die folgenden env -Parameter konfigurieren:
| Env -Konfiguration | Chinesische Definition | Standardwert |
|---|---|---|
| Mxusearch_project | Indexbibliotheksname | mxu_project |
| Mxusearch_charset | Charaktercodierung | UTF-8 |
| Mxusearch_index_host | Indexserver IP | 127.0.0.1 (siehe "Hinweis" für die Konfiguration der verteilten Bereitstellung) |
| Mxusearch_index_port | Indexport | 8383 |
| Mxusearch_search_host | Suchen Sie den Server IP | 127.0.0.1 (siehe "Hinweis" für die Konfiguration der verteilten Bereitstellung) |
| Mxusearch_search_port | Suchanschluss | 8384 |
| Mxusearch_ini | Ini -Konfigurationsdateiname | mxusearch.ini |
Hinweis: Alle oben genannten Konfigurationen haben Standardwerte, unter denen der Index- und Suchhosts in der verteilten Bereitstellung unterschieden werden müssen. Zeigen Sie einheitlich auf den Server, auf dem sich der Suchdienst befindet.
6. Führen Sie den Befehl console aus, um eine ini -Datei zu generieren
php artisan search:reset-ini
| Seriennummer | Methodenname | Chinesische Definition | Bemerkung |
|---|---|---|---|
| 1 | addIndex | Erstellen Sie einen Index | Single unterstützt die sofortige Synchronisation, Multiplikatoren haben Zeitfehler, die je nach der spezifischen Situation bis 2 bis 3 Minuten spezifisch sind |
| 2 | deleteIndex | Löschen Sie den Index | Mehrere einzelne Teile wirken unverzüglich sofort wirksam |
| 4 | SearchIndex | Index finden | Unterstützen Sie setfuzzy fuzzy query, unterstützen spezifische feldorientierte Abfrage (Spalte: Schlüssel). |
| 5 | CleanIndex | Löschen Sie den Index | Sofort ohne Verzögerung wirksam wirksam |
| 6 | rebuildindex | Den Index wieder aufbauen | Noch nicht unterstützt |
| 7 | GetIdeCount | Holen Sie sich die Gesamtzahl der Indizes | |
| 8 | Checkserver | Erkennen Sie den Status des Volltext -Suchdienstes | Direkt den aktuellen Status und die Indexnummer ausgeben |
| 9 | FlushIndex | Erstellen Sie die Aktualisierung des Suchprotokolls | |
| 10 | Gethotwords | Holen Sie sich beliebte Suchbegriffe | |
| 11 | GetMatchnum | Holen Sie sich die Anzahl der Indexübereinstimmungen | |
| 12 | FlushIndex | Erfrischung des Index erzwingen | Erzwingen Sie die Aktualisierung, um die sofortige Suche des Index zu realisieren |
| 13 | FlushLogging | Erstellen Sie die Aktualisierung des Suchprotokolls | |
| 14 | Checkserver | Xunsou Service Statuserkennung | |
| 15 | GetKeywords | Segmentierungsfunktion von Text Wort | |
| 16 | Resetinifile | Ini -Dateimethode zurücksetzen | |
| 17 | Multisearch | Multi-Kondition-Abfrage |
Bieten Sie der Umsetzung der Handwerkerkommando an:
| Seriennummer | Handwerkerkommando | Konsole Bedeutung | Bemerkung |
|---|---|---|---|
| 1 | Suche: Hinzufügen | Erstellen Sie einen Index | Single unterstützt die sofortige Synchronisation, Multiplikatoren haben Zeitfehler, die je nach der spezifischen Situation bis 2 bis 3 Minuten spezifisch sind |
| 2 | Suche: Löschen | Löschen Sie den Index | Mehrere einzelne Teile wirken unverzüglich sofort wirksam |
| 3 | Suche: Suche | Index finden | Die Terminalinteraktion können den Matching -Bereich auswählen |
| 4 | Suche: klar | Löschen Sie den Index | Sofort ohne Verzögerung wirksam wirksam |
| 5 | Suche: Scheckserver | Erkennen Sie den Status des Volltext -Suchdienstes | Direkt den aktuellen Status und die Indexnummer ausgeben |
| 6 | Suche: Flush | Erzwingen Sie die Aktualisierung des Index- und Suchprotokolls | Standardmäßig wird es asynchron erstellte Indizes und erzwungene Aktualisierung, um die sofortige Suche nach Indizes zu implementieren. |
| 7 | Suche: SCWS | Befehl Partizip Text Partizip | |
| 8 | Suche: Reset-Ini | Setzen Sie die INI -Datei zurück | Stellen Sie die Ini -Dateien entsprechend Konfigurationselemente neu auf |
| 9 | Suche: Listenhotwords | Sehen Sie sich die heiße Wortliste an | Direkte Ausgabe aus der Befehlszeile |
1. ini -Konfigurationsdatei: mxu-backend/config/mxusearch.ini ;
2. Serverkonfiguration
project.name = {{MXUSEARCH_PROJECT}}// 项目名称
project.default_charset = {{MXUSEARCH_CHARSET}}// 字符编码
server.index = {{MXUSEARCH_INDEX_HOST}}:{{MXUSEARCH_INDEX_PORT}}// 索引服务端配置(Host&端口)
server.search = {{MXUSEARCH_SEARCH_HOST}}:{{MXUSEARCH_SEARCH_PORT}}// 搜索服务端配置(Host&端口)
3. Indexfeldkonfiguration
[id]
type = id
tokenizer = full
[column_id]
tokenizer = full
index = self
......
......
Beispiel für Methode
/**
* 多条件查询功能
*
* @param $keyword
* @param string $field
* @param array $other_field_value
* @param array $range
* @param int $limit
* @param int $page
* @param array $sorts
*
* @return array
*/
public function multiSearch($keyword, $field = '', array $other_field_value = [], array $range = [], $limit = 0, $page = 1, array $sorts = []);
Anfrage Parameter
| Parametername | Typ | Parameterbeschreibung | Erforderlich | Bemerkung |
|---|---|---|---|---|
| $ Keyword | Saite | Schlüsselwörter | N | |
| $ field | Saite | Feldname | N | Standard -Null, das den Volltext -Matching angibt |
| $ other_field_value | Array | Andere Multi-Kondition-Parameter | N | Standard leeres Array |
| $ Range | Array | Intervallzustandsfilterung | N | |
| $ limit | int | Paginationsparameter | N | Standard 10 Elemente |
| $ page | int | Paginationsparameter | N | Standard 1 |
| $ Sorts | Array | Sortierbedingungen | N | Standard leer |
Beispiel anfordern
$key = '我是关键词';
$field = 'title';
// 多条件
$other_field_value = [
'site_id' => 1,
'column_id' => 2,
'type' => 'article',
// ...
];
$range = [
[
'field' => 'publish_time',
'from' => '2017-10-18 12:07:26',
'to' => '2017-10-23 17:07:26',
],
// ...
];
// 分页控制
$limit = 10;
$page = 1;
// 排序条件(true 为正序, false 为倒序)
$sorts = [
'field_1' => true, // 根据 field_1 正序排序
'field_2' => false // 根据 field_2 倒序排序
];
// 调用服务
Mxusearch::multiSearch($key, $field, $other_field, $range, $limit, $page, $sorts);
2~4分钟erreicht werden.2~4分钟erreicht werden;laravel config gespeichert.Xunsou SDK Guide