站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

關(guān)于laravel使用es的正確姿勢

下面由Laravel教程欄目給大家介紹laravel使用es的正確姿勢,希望對需要的朋友有所幫助!

關(guān)于laravel使用es的正確姿勢

Elasticsearch 簡介

Elastic 的底層是開源庫 Lucene。但是,你沒法直接用 Lucene,必須自己寫代碼去調(diào)用它的接口。Elastic 是 Lucene 的封裝,提供了 REST API 的操作接口,開箱即用。

ES 和 Mysql

ES 里的概念類比于 Mysql 如下圖所示:
關(guān)于laravel使用es的正確姿勢

倒排索引

在說倒排索引之前我們先說說什么是正排索引。正排索引也稱為”前向索引”,它是創(chuàng)建倒排索引的基礎(chǔ)。
關(guān)于laravel使用es的正確姿勢
如上在查詢一個 keyword 在哪些文檔里包含的時候,需對所有的文檔進(jìn)行掃描以確保沒有遺漏,這樣就使得檢索時間大大延長,檢索效率低下。這個時候我們就用到了倒排索引,首先將文檔分詞。
關(guān)于laravel使用es的正確姿勢
比如我們要查詢‘搜索引擎’這個關(guān)鍵詞在哪些文檔中出現(xiàn)過。首先我們通過倒排索引可以查詢到該關(guān)鍵詞出現(xiàn)的文檔位置是在1和3中;然后再通過正排索引查詢到文檔1和3的內(nèi)容并返回結(jié)果。

Laravel 使用 ES

安裝插件

basemkhirat/elasticsearch 是 Laravel 中使用 ES 的一個擴(kuò)展,使用起來非常方便:
1)安裝方法

$ composer require basemkhirat/elasticsearch

2)發(fā)布

$ php artisan vendor:publish –provider=”BasemkhiratElasticsearchElasticsearchServiceProvider”

配置

這樣我們就安裝好了,如下是我們的連接配置:

'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')     ]],

servers 里可以加入我們的集群配置。

使用方法

該插件的使用方法可借鑒 Laravel 的查詢構(gòu)造器,支持常用的如 wherewhereInwhereBetweenorderByfirstget,也支持分頁方法paginate

$documents = ES::connection(“default”)
->index(“my_index”)
->type(“my_type”)
->get(); # return a collection of results

設(shè)置字段權(quán)重:

ES::type(“my_type”)->search(“hello”, function($search){
$search->boost(2)->fields([“title” => 2, “content” => 1])
})->get();

我們也可以通過修改源碼擴(kuò)充自己需要用到的方法,也可以構(gòu)造原生的查詢語句:

$params['body'] = [             'aggs' => [                 'all_created' => [                     'terms' => [                         'field' => 'element.raw',                         'size'  => $this->_mAggsPageSize                    ],                      'aggs' => [                          'sum_pv' => [                             'sum' => ['field' => 'pv'],                         ],                     ],                 ],             ],         ];

結(jié)語

ES 內(nèi)置分詞器對中分支持并不友好,比較推薦的是 IK分詞器,需要注意的是ik版本需要與ES的版本號保持一致

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
国产 精品 自在 线| 国产成人精品一区二三区在线观看| 亚洲精品~无码抽插| 国产成人不卡亚洲精品91| 91亚洲国产成人久久精品网站| 国产精品一区12p| 国产啪精品视频网站丝袜| 久久久久久精品成人免费图片| 国产在线精品一区二区夜色| 久久综合日韩亚洲精品色| 亚洲国产精品美女久久久久| 亚洲精品综合一二三区在线| 精品国产婷婷久久久| 日韩AV毛片精品久久久| 老色鬼在线精品视频| 久久青青草原精品国产| 日韩精品无码免费专区午夜不卡 | 嘿嘿射久草日韩视频| 日本阿v精品视频在线观看| 国产一区二区精品久久| 国产精品无码一区二区在线观一| 国产精品午夜爆乳美女| 99精品人妻无码专区在线视频区 | 国产精品免费观看久久| 亚洲国产精品综合久久网各| 国产精品人人爽人人做我的可爱 | 2022国产成人精品福利网站| 国内精品久久久久久99| 亚洲精品99久久久久中文字幕 | 91精品久久久久久久久久小网站| 国产一级精品高清一级毛片| 日韩夜夜高潮夜夜爽无码| 精品日韩一区二区| 无码精品A∨在线观看免费| 老司机91精品网站在线观看| 七月婷婷精品视频在线观看| 国产人妖系列在线精品| 久久99热久久99精品| 精品国产yw在线观看| 久久亚洲精精品中文字幕| 亚洲国产美女精品久久久久∴ |