安溪网站建设,wordpress获取帖子标签,网站设计师需要学什么,浦东新区网站优化推广要点 不同工具之间版本匹配很重要由点及面#xff0c;先实践起来再学细节的原理和使用 技术栈 laravel5.5框架scout组件elasticsearch6.3.0搜索引擎辅助 elasticsearch-head 查看集群数据可视化
中文分词插件Ik介绍 laravel是一款现代化的php框架es是搜索引擎es-head是管理查看…要点 不同工具之间版本匹配很重要由点及面先实践起来再学细节的原理和使用 技术栈
laravel5.5框架scout组件elasticsearch6.3.0搜索引擎辅助
elasticsearch-head 查看集群数据可视化
中文分词插件Ik介绍 laravel是一款现代化的php框架es是搜索引擎es-head是管理查看使用es的图形界面工具scout是laravel一款优秀的组件 安装流程 laravel laravel安装器安装 laravel new larasearch配置env文件 DB_CONNECTIONmysql
DB_HOST127.0.0.1
DB_PORT3306
DB_DATABASEjulyedu
DB_USERNAMEroot
DB_PASSWORD123456这时php artisan命令启动访问127.0.0.1:8000 就可以看到项目首页了。 es 在es的官网挑选一个合适的版本建议选择6.3.0以便配套使用IK和ES-head。
# 下载
https://www.elastic.co/downloads/past-releasesIK 1.直接plugin命令安装
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.0/elasticsearch-analysis-ik-6.3.0.zip2.配置修改ik的版本适应es6.3.1,修改文件plugin-descriptor.propertiesconfig文件夹下的配置文件主要是IK本身暂时不需要修改这个properties文件主要是和es交互修改其es版本和jdk版本号
# 修改elasticsearch-head/plugin-descriptor.properties文件
descriptionhead - A web front end for an elastic search cluster
version6.3.1
sitetrue
nameanalysis-ik
classnameorg.elasticsearch.plugin.analysis.ik.AnalysisIkPlugin
java.version1.8
elasticsearch.version6.3.1 es-head head是基于node开发的所以需要先安装nodenode下载地址http://cdn.npm.taobao.org/dis... 在电脑任意一个目录下不要在elasticsearch目录里面执行一下命令
git clone https://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head/
npm install 为了es-head可以访问es所以需要配置跨域 修改两个地方
#elasticsearch-headGruntfile.js
connect: {server: {options: {port: 9100,hostname: *,base: .,keepalive: true}}
}#elasticsearch-5.6.0configelasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: * scout 通过composer安装依赖包
composer require laravel/scout
composer require tamayo/laravel-scout-elastic基本配置 在config/app.php文件中的providers数组中加入服务提供者
// config/app.php
providers gt; [// ...Laravel\Scout\ScoutServiceProvider::class,// ...ScoutEngines\Elasticsearch\ElasticsearchProvider::class,
],使用以下命令生成scout配置文件
php artisan vendor:publish --providerLaravel\Scout\ScoutServiceProvider在config/scout.php中加入elasticsearch的配置
elasticsearch gt; [index gt; env(ELASTICSEARCH_INDEX, laravel),hosts gt; [env(ELASTICSEARCH_HOST, http://localhost:9200),],
],然后我们打开.env文件加入scout和elasticsearch的配置
# scout配置
SCOUT_DRIVERelasticsearch
SCOUT_PREFIX# elasticsearch 配置
ELASTICSEARCH_INDEXesdemo
# elasticsearch 地址
ELASTICSEARCH_HOSThttp://172.30.6.1:9200 相关文档地址 laravel scout中文文档地址https://laravel-china.org/doc...es中文文档地址https://www.elastic.co/guide/...es6.3.0地址https://www.elastic.co/downlo...IK github地址https://github.com/medcl/elas... 启动并查看 启动es
./bin/elasticsearch地址
http://127.0.0.1:9200/启动es-head
npm run start地址
http://127.0.0.1:9100启动laravel项目
php artisan serve地址
http://127.0.0.1:8000/es/s?page1 测试执行 创建索引 创建模型并填充数据 创建模型app/Ques.php为方便后续测试请先建表和填充数据可以手动使用sql语句添加数据也使用laravel自动的数据迁移和填充。
lt;?php
namespace App;use Illuminate\Database\Eloquent\Model;use Laravel\Scout\Searchable;/*** 学生模型*/
class Ques extends Model
{use Searchable;//定义关联的表名不定义的话默认此模型关联的表为 模型名s (users)protected $table aws_ques_tb_0;/******字段相关*******/#定义主键字段名默认是idprotected $primaryKey id;#定义字段白名单允许操作表中的哪些字段// protected $fillable [ques,name];#定义字段黑名单不允许操作表中哪些字段protected $guarded [];//1、使用model::create([])等方法直接对orm对象操作使必须定义$guarded或者$fillable//2、使用$m new model();然后$m-gt;save()的方式不需要定义//3、简便的方式就是定义$fillable [];#定义隐藏的字段protected $hidden [];/*** 索引名称** return string*/public function searchableAs(){return ques_index;}/*** 索引名称** return string*/public function searchableAs(){return Quess_index;}/*** 可搜索的数据索引** return array*/public function toSearchableArray(){$array $this-gt;toArray();// Customize array...return $array;}
}把所有现有记录导入到搜索索引里
php artisan scout:import App\Ques导入过程
Imported [App\Ques] models up to ID: 500
Imported [App\Ques] models up to ID: 1000
Imported [App\Ques] models up to ID: 1500
Imported [App\Ques] models up to ID: 2000All [App\Ques] records have been imported.我们访问es是不是已经有了刚刚导入的Quess_index索引数据。
http://172.30.6.1:9200/esdemo/Ques_index/_search试试搜索 在route/web.php中写个demo试试看
Route::get(/search/{content}, function ($content) {//直接输出数组data限制1000条// $res App\Ques::search($content)-gt;take(1000)-gt;get()-gt;toArray();// 分页请求 http://127.0.0.1:8000/es/机器学习?page1$res App\Ques::search($content)-gt;paginate(100)-gt;toArray();dd($res);});大功告成 输出
array:12 [▼current_page gt; 1data gt; array:9 [▼0 gt; array:9 [▼id gt; 922ques gt; 哪些机器学习算法不需要做归一化处理analysis gt; 概率模型不需要归一化因为它们不关心变量的值而是关心变量的分布和变量之间的条件概率如决策树、rf。而像adaboost、svm、lr、KNN、KMeans之类的最优化问题就需要归一化。\r\n我理解归一化和标准化主要是为了使计算更方便 比如两个变量的量纲不同 可能一个的数值远大于另一个那么他们同时作为变量的时候 可能会造成数值计算的问题比如说求矩阵的逆可能很不精确 或者梯度下降法的收敛比较困难还有如果需要计算欧式距离的话可能 量纲也需要调整 所以我估计lr 和 knn 保准话一下应该有好处。至于其他的算 ▶一般我习惯说树形模型这里说的概率模型可能是差不多的意思。引用自寒小阳type_id gt; 3diff gt; 0isdelete gt; 1created_time gt; 2017-12-10 18:57:13update_time gt; 0000-00-00 00:00:00is_show gt; 1]1 gt; array:9 [▶]2 gt; array:9 [▶]3 gt; array:9 [▶]4 gt; array:9 [▶]5 gt; array:9 [▶]6 gt; array:9 [▶]7 gt; array:9 [▶]8 gt; array:9 [▶]]first_page_url gt; http://127.0.0.1:8000/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0?query%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0amp;page1from gt; 1last_page gt; 1last_page_url gt; http://127.0.0.1:8000/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0?query%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0amp;page1next_page_url gt; nullpath gt; http://127.0.0.1:8000/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0per_page gt; 100prev_page_url gt; nullto gt; 9total gt; 9
] 参考 PHP使用elasticsearch搜索安装及分词方法【https://segmentfault.com/a/11...】 Laravel中利用Scout集成Elasticsearch搜索引擎【https://segmentfault.com/a/11...】 全文搜索引擎 Elasticsearch 入门教程【http://www.ruanyifeng.com/blo...】 laravel使用ElasticSearch进行搜索【https://blog.csdn.net/lingche...】 elasticsearch6.3.1IK插件安装部署全攻略【https://blog.csdn.net/superhe...】 原文地址https://segmentfault.com/a/1190000016468707 转载于:https://www.cnblogs.com/lalalagq/p/9970068.html