国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

elastic學(xué)習(xí)筆記

heartFollower / 1038人閱讀

摘要:至于其他的算一般我習(xí)慣說樹形模型,這里說的概率模型可能是差不多的意思。

要點(diǎn)

不同工具之間版本匹配很重要
由點(diǎn)及面,先實(shí)踐起來再學(xué)細(xì)節(jié)的原理和使用

技術(shù)棧
laravel5.5框架+scout組件+elasticsearch6.3.0搜索引擎
輔助
elasticsearch-head 查看集群數(shù)據(jù)可視化
中文分詞插件Ik
介紹

laravel是一款現(xiàn)代化的php框架
es是搜索引擎
es-head是管理查看使用es的圖形界面工具
scout是laravel一款優(yōu)秀的組件

安裝流程 laravel

laravel安裝器安裝:

laravel new larasearch

配置env文件:

    
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=julyedu
DB_USERNAME=root
DB_PASSWORD=123456

這時(shí)php artisan命令啟動(dòng),訪問127.0.0.1:8000 就可以看到項(xiàng)目首頁了。

es

在es的官網(wǎng)挑選一個(gè)合適的版本,建議選擇6.3.0,以便配套使用IK和ES-head。

# 下載
https://www.elastic.co/downloads/past-releases
IK

1.直接plugin命令安裝

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.0/elasticsearch-analysis-ik-6.3.0.zip

2.配置修改ik的版本適應(yīng)es6.3.1,修改文件plugin-descriptor.properties,config文件夾下的配置文件主要是IK本身暫時(shí)不需要修改,這個(gè)properties文件主要是和es交互,修改其es版本和jdk版本號(hào)

# 修改elasticsearch-head/plugin-descriptor.properties文件
description=head - A web front end for an elastic search cluster
version=6.3.1
site=true
name=analysis-ik
classname=org.elasticsearch.plugin.analysis.ik.AnalysisIkPlugin
java.version=1.8
elasticsearch.version=6.3.1 

es-head

head是基于node開發(fā)的,所以需要先安裝node
node下載地址:http://cdn.npm.taobao.org/dis...

在電腦任意一個(gè)目錄下(不要在elasticsearch目錄里面),執(zhí)行一下命令,

git clone https://github.com/mobz/elasticsearch-head.git  
cd elasticsearch-head/  
npm install  

為了es-head可以訪問es,所以需要配置跨域:

修改兩個(gè)地方:

#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數(shù)組中加入服務(wù)提供者

// config/app.php
"providers" => [
    // ...
    LaravelScoutScoutServiceProvider::class,
    // ...
    ScoutEnginesElasticsearchElasticsearchProvider::class,
],

使用以下命令生成scout配置文件

php artisan vendor:publish --provider="LaravelScoutScoutServiceProvider"

在config/scout.php中加入elasticsearch的配置

"elasticsearch" => [
    "index" => env("ELASTICSEARCH_INDEX", "laravel"),
    "hosts" => [
        env("ELASTICSEARCH_HOST", "http://localhost:9200"),
    ],
],

然后我們打開.env文件,加入scout和elasticsearch的配置

# scout配置
SCOUT_DRIVER=elasticsearch
SCOUT_PREFIX=

# elasticsearch 配置
ELASTICSEARCH_INDEX=esdemo
# elasticsearch 地址
ELASTICSEARCH_HOST=http://172.30.6.1:9200

相關(guān)文檔地址

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...

啟動(dòng)并查看

啟動(dòng)es

./bin/elasticsearch

地址

http://127.0.0.1:9200/

啟動(dòng)es-head

npm run start

地址

http://127.0.0.1:9100

啟動(dòng)laravel項(xiàng)目

php artisan serve

地址

http://127.0.0.1:8000/es/s?page=1

測(cè)試執(zhí)行 創(chuàng)建索引 創(chuàng)建模型并填充數(shù)據(jù)

創(chuàng)建模型app/Ques.php,為方便后續(xù)測(cè)試,請(qǐng)先建表和填充數(shù)據(jù),可以手動(dòng)使用sql語句添加數(shù)據(jù),也使用laravel自動(dòng)的數(shù)據(jù)遷移和填充。

save()的方式不需要定義
    //3、簡便的方式就是定義$fillable = [];
    
    #定義隱藏的字段
    protected $hidden = [];
    /**
     * 索引名稱
     *
     * @return string
     */
    public function searchableAs()
    {
        return "ques_index";
    }


    /**
     * 索引名稱
     *
     * @return string
     */
    public function searchableAs()
    {
        return "Quess_index";
    }

    /**
     * 可搜索的數(shù)據(jù)索引
     *
     * @return array
     */
    public function toSearchableArray()
    {
        $array = $this->toArray();

        // Customize array...

        return $array;
    }
}
把所有現(xiàn)有記錄導(dǎo)入到搜索索引里
php artisan scout:import "AppQues"
導(dǎo)入過程
Imported [AppQues] models up to ID: 500
Imported [AppQues] models up to ID: 1000
Imported [AppQues] models up to ID: 1500
Imported [AppQues] models up to ID: 2000

All [AppQues] records have been imported.

我們?cè)L問es,是不是已經(jīng)有了剛剛導(dǎo)入的Quess_index索引數(shù)據(jù)。

http://172.30.6.1:9200/esdemo/Ques_index/_search
試試搜索

在route/web.php中寫個(gè)demo,試試看;

Route::get("/search/{content}", function ($content) {

    //直接輸出數(shù)組data,限制1000條
    // $res = AppQues::search($content)->take(1000)->get()->toArray();
    // 分頁請(qǐng)求  http://127.0.0.1:8000/es/機(jī)器學(xué)習(xí)?page=1
    $res = AppQues::search($content)->paginate(100)->toArray();
    
    dd($res);
    
});
大功告成

輸出:

array:12 [▼
  "current_page" => 1
  "data" => array:9 [▼
    0 => array:9 [▼
      "id" => 922
      "ques" => "哪些機(jī)器學(xué)習(xí)算法不需要做歸一化處理?"
      "analysis" => """
        概率模型不需要?dú)w一化,因?yàn)樗鼈儾魂P(guān)心變量的值,而是關(guān)心變量的分布和變量之間的條件概率,如決策樹、rf。而像adaboost、svm、lr、KNN、KMeans之類的最優(yōu)化問題就需要?dú)w一化。

        我理解歸一化和標(biāo)準(zhǔn)化主要是為了使計(jì)算更方便 比如兩個(gè)變量的量綱不同 可能一個(gè)的數(shù)值遠(yuǎn)大于另一個(gè)那么他們同時(shí)作為變量的時(shí)候 可能會(huì)造成數(shù)值計(jì)算的問題,比如說求矩陣的逆可能很不精確 或者梯度下降法的收斂比較困難,還有如果需要計(jì)算歐式距離的話可能 量綱也需要調(diào)整 所以我估計(jì)lr 和 knn 保準(zhǔn)話一下應(yīng)該有好處。至于其他的算 ?
        一般我習(xí)慣說樹形模型,這里說的概率模型可能是差不多的意思。引用自@寒小陽
        """
      "type_id" => 3
      "diff" => 0
      "isdelete" => 1
      "created_time" => "2017-12-10 18:57:13"
      "update_time" => "0000-00-00 00:00:00"
      "is_show" => 1
    ]
    1 => array:9 [?]
    2 => array:9 [?]
    3 => array:9 [?]
    4 => array:9 [?]
    5 => array:9 [?]
    6 => array:9 [?]
    7 => array:9 [?]
    8 => array:9 [?]
  ]
  "first_page_url" => "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%A0&page=1"
  "from" => 1
  "last_page" => 1
  "last_page_url" => "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%A0&page=1"
  "next_page_url" => null
  "path" => "http://127.0.0.1:8000/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0"
  "per_page" => 100
  "prev_page_url" => null
  "to" => 9
  "total" => 9
]



參考

PHP使用elasticsearch搜索安裝及分詞方法【https://segmentfault.com/a/11...】

Laravel中利用Scout集成Elasticsearch搜索引擎【https://segmentfault.com/a/11...】

全文搜索引擎 Elasticsearch 入門教程【http://www.ruanyifeng.com/blo...】

laravel使用ElasticSearch進(jìn)行搜索【https://blog.csdn.net/lingche...】

elasticsearch6.3.1+IK插件安裝部署全攻略【https://blog.csdn.net/superhe...】

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/29420.html

相關(guān)文章

發(fā)表評(píng)論

0條評(píng)論

heartFollower

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<