mxusearch
1.0.0
フルテキスト検索サービスは、オープンソースプロジェクト
xunsearchによってカプセル化されたフルテキスト検索エンジンであり、サービスはまだ改善されています。
1. composerを介して検索サービスをインストールし、次のコマンドを入力して最新バージョンをインストールします。
composer require antsfree/mxusearch dev-master
OR
composer require antsfree/mxusearch '^0.1'
2. config/app.phpのサービスアレイプロバイダーに次のサービスを追加します。
AntsfreeMxusearchMxusearchProvider::class
3. config/app.phpのファサードアレイエイリアスに次のファサードを追加します。
'Mxusearch' => AntsfreeMxusearchMxusearch::class,
4。次のコマンドを実行して、 mxusearch.php構成ファイルを構成します。
php artisan vendor:publish --provider="AntsfreeMxusearchMxusearchProvider"
5。分散インストール、各laravelプロジェクトは、次のenvパラメーターを構成する必要があります。
| env Configuration | 中国の定義 | デフォルト値 |
|---|---|---|
| mxusearch_project | インデックスライブラリ名 | MXU_Project |
| mxusearch_charset | 文字エンコーディング | UTF-8 |
| mxusearch_index_host | インデックスサーバーIP | 127.0.0.1(分散展開構成については「メモ」を参照) |
| mxusearch_index_port | インデックスポート | 8383 |
| mxusearch_search_host | サーバーIPを検索します | 127.0.0.1(分散展開構成については「メモ」を参照) |
| mxusearch_search_port | 検索ポート | 8384 |
| mxusearch_ini | INI構成ファイル名 | mxusearch.ini |
注:上記のすべての構成にはデフォルト値があり、その中でインデックスと検索ホストを分散展開で区別する必要があります。検索サービスが配置されているサーバーを均一に指します。
6。 consoleコマンドを実行してiniファイルを生成します
php artisan search:reset-ini
| シリアルナンバー | メソッド名 | 中国の定義 | 述べる |
|---|---|---|---|
| 1 | addindex | インデックスを作成します | 単一のサポートインスタント同期、倍数には、特定の状況に応じて、2〜3分間に固有の時間エラーがあります |
| 2 | DeleteIndex | インデックスを削除します | 複数の単一のピースが遅滞なくすぐに有効になります |
| 4 | SearchIndex | インデックスを見つけます | サポートSetFuzzy Fuzzyクエリ、特定のフィールド指向クエリをサポート(列:キー) |
| 5 | CleanIndex | インデックスをクリアします | 遅滞なくすぐに有効になります |
| 6 | RebuildIndex | インデックスを再構築します | まだサポートされていません |
| 7 | getIndexCount | インデックスの総数を取得します | |
| 8 | チェックサーバー | 全文検索サービスのステータスを検出します | 現在のステータスとインデックス番号を直接出力します |
| 9 | flushindex | 検索ログの強制リフレッシュ | |
| 10 | gethotwords | 人気のある検索用語を取得します | |
| 11 | getMatchNum | インデックスマッチの数を取得します | |
| 12 | flushindex | インデックスの強制リフレッシュ | インデックスのインスタント検索を実現するには、強制的に更新します |
| 13 | フラッシュロギング | 検索ログの強制リフレッシュ | |
| 14 | チェックサーバー | Xunsouサービスステータス検出 | |
| 15 | GetKeyWords | テキストワードセグメンテーション関数 | |
| 16 | resetinifile | INIファイルメソッドをリセットします | |
| 17 | MultiSearch | マルチコンディションクエリ |
職人コマンドの実装を提供します:
| シリアルナンバー | 職人コマンド | コンソールの意味 | 述べる |
|---|---|---|---|
| 1 | 検索:追加 | インデックスを作成します | 単一のサポートインスタント同期、倍数には、特定の状況に応じて、2〜3分間に固有の時間エラーがあります |
| 2 | 検索:削除します | インデックスを削除します | 複数の単一のピースが遅滞なくすぐに有効になります |
| 3 | 検索:検索 | インデックスを見つけます | 端子相互作用では、一致する範囲を選択できます |
| 4 | 検索:クリア | インデックスをクリアします | 遅滞なくすぐに有効になります |
| 5 | 検索:チェックサーバー | 全文検索サービスのステータスを検出します | 現在のステータスとインデックス番号を直接出力します |
| 6 | 検索:フラッシュ | インデックスと検索ログの強制リフレッシュ | デフォルトでは、非同期に作成されたインデックスであり、インデックスの即時検索を実装するために更新を強制します。 |
| 7 | 検索:SCWS | テキストワード分詞コマンド | |
| 8 | 検索:リセットイン | INIファイルをリセットします | Configurationアイテムに従ってINIファイルを再構成します |
| 9 | 検索:List-HotWords | ホットワードリストを表示します | コマンドラインからの直接出力 |
ini構成ファイル: mxu-backend/config/mxusearch.ini ;
2。サーバー構成
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。インデックスフィールド構成
[id]
type = id
tokenizer = full
[column_id]
tokenizer = full
index = self
......
......
メソッドの例
/**
* 多条件查询功能
*
* @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 = []);
リクエストパラメーター
| パラメーター名 | タイプ | パラメーターの説明 | 必須 | 述べる |
|---|---|---|---|---|
| $キーワード | 弦 | キーワード | n | |
| $フィールド | 弦 | フィールド名 | n | 完全なテキストマッチングを示しているデフォルトのnull |
| $ other_field_value | 配列 | その他のマルチコンディションパラメーター | n | デフォルトの空の配列 |
| $範囲 | 配列 | 間隔条件フィルタリング | n | |
| $制限 | int | ページネーションパラメーター | n | デフォルトの10項目 |
| $ページ | int | ページネーションパラメーター | n | デフォルト1 |
| $ソート | 配列 | 条件をソートします | n | デフォルトの空 |
リクエスト例
$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分钟で達成できます。2~4分钟で達成できます。laravel configディレクトリに保存されます。Xunsou SDKガイド