hi,你好!欢迎访问本站!登录
本站由网站地图腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 教程 - php框架 - 正文 君子好学,自强不息!

关于laravel运用es的准确姿态_PHP开发框架教程

2020-09-19php框架搜奇网57°c
A+ A-
下面由 Laravel教程栏目给人人引见laravel运用es的准确姿态,愿望对须要的朋侪有所协助!

Elasticsearch 简介

Elastic 的底层是开源库 Lucene。然则,你没法直接用 Lucene,必需本身写代码去调用它的接口。Elastic 是 Lucene 的封装,供应了 REST API 的操纵接口,开箱即用。

ES 和 Mysql

ES 里的观点类比于 Mysql 以下图所示:

倒排索引

在说倒排索引之前我们先说说什么是正排索引。正排索引也称为”前向索引”,它是建立倒排索引的基本。

如上在查询一个 keyword 在哪些文档里包括的时刻,需对一切的文档举行扫描以确保没有脱漏,如许就使得检索时候大大延伸,检索效力低下。这个时刻我们就用到了倒排索引,起首将文档分词。

比方我们要查询‘搜索引擎’这个关键词在哪些文档中涌现过。起首我们经由过程倒排索引能够查询到该关键词涌现的文档位置是在1和3中;然后再经由过程正排索引查询到文档1和3的内容并返回效果。

Laravel 运用 ES

装置插件

basemkhirat/elasticsearch 是 Laravel 中运用 ES 的一个扩大,运用起来异常轻易:
1)装置要领

$ composer require basemkhirat/elasticsearch

2)宣布

$ php artisan vendor:publish –provider=”Basemkhirat\Elasticsearch\ElasticsearchServiceProvider”

设置

如许我们就装置好了,以下是我们的衔接设置:

'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 的查询组织器,支撑经常使用的如 wherewhereInwhereBetweenorderByfirstget,也支撑分页要领paginate

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

设置字段权重:

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

我们也能够经由过程修正源码扩大本身须要用到的要领,也能够组织原生的查询语句:

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

                    'aggs' => [

                        'sum_pv' => [
                            'sum' => ['field' => 'pv'],
                        ],
                    ],
                ],
            ],
        ];

结语

ES 内置分词器对中分支撑并不友爱,比较引荐的是 IK分词器,须要注重的是ik版本须要与ES的版本号保持一致

以上就是关于laravel运用es的准确姿态的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  移步手机端
关于laravel运用es的准确姿态_PHP开发框架教程

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签:

本文来源:搜奇网

本文地址:https://www.sou7.cn/300806.html

关注我们:微信搜索“搜奇网”添加我为好友

版权声明: 本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。请记住本站网址https://www.sou7.cn/搜奇网。