Elasticsearch5.3 學習(一):安裝、Yii2.0 下載es擴展


Elasticsearch是一個基於Lucene,提供了一個分布式多用戶能力的全文搜索引擎。其他就不多說了,官方文檔有詳細的介紹。

我自己是在CentOS 7.0安裝的

Elasticsearch 是在Elasticsearch官網下載的最新版本 5.3 https://www.elastic.co/cn/

Elasticsearch 不需要安裝,自己解壓后運行就可以了 切換到解壓后的bin目錄。/path/elasticsearch-5.3.0/bin/

./elasticsearch 前台運行

./elasticsearch -d 后台運行

成功運行要確保Linux 系統安裝了Java環境,因為Es是Java開發的 5.3 需要Java1.8及以上版本

Java環境安裝,可以下載源碼包編譯安裝,也可以yum 安裝,我是yum安裝的,yum安裝首先可以搜索openjdk

 

 找到x86_64對應的安裝包 java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment, 安裝

 

 一切就緒,能得到這樣的json數據就表示成功了

我用的Yii2.0框架,下載 elasticsearch-php  ,   composer require "elasticsearch/elasticsearch:~5.0"

下載完,首先配置ES 連接地址 

需要注意的是,要想配置生效 把ClientBuilder.php 文件中的 private 改成 public,不然默認連接的是127.0.0.1:9200

 

然后就是Es的增刪改查了

新增

public function actionTest(){
        $client = Yii::$app->elasticsearch->build();
        $params = [
            'index' => 'my_index',
            'type' => 'my_type',
            'id' => 'my_id_1',
            'body' => ['testField' => 'abc','name' => 'dong']
        ];

        $response = $client->index($params);
        print_r($response);
    }

 按id精確搜索

public function actionSearch(){
        $client = Yii::$app->elasticsearch->build();
        $params = [
            'index' => 'my_index',
            'type' => 'my_type',
            'id' => 'my_id'
        ];
        $data = $client->get($params);
        var_dump($data);
    }
按字段搜索
 public function actionMatch(){
        $client = Yii::$app->elasticsearch->build();
        $params = [
            'index' => 'my_index',
            'type' => 'my_type',
            'body' => [
                'query' => [
                    'match' => [
                        'name' => 'dong'
                    ]
                ]
            ]
        ];

        $response = $client->search($params);
        var_dump($response);
    }

 刪除一條數據

 public  function actionDelete_document(){
        $es = Yii::$app->elasticsearch->build();
        $params = [
            'index' => 'my_index',
            'type' => 'my_type',
            'id' => 'my_id'
        ];

        $response = $es->delete($params);
        var_dump($response);
    }

 刪除一個索引

public function actionDelete_index(){
        $es = Yii::$app->elasticsearch->build();
        $deleteParams = [
            'index' => 'my_index'
        ];
        $response = $es->indices()->delete($deleteParams);
        var_dump($response);
    }

  創建一個索引

 public function actionCreate_index(){
        $es = Yii::$app->elasticsearch->build();
        $params = [
            'index' => 'my_index',
            'body' => [
                'settings' => [
                    'number_of_shards' => 2,
                    'number_of_replicas' => 0
                ]
            ]
        ];

        $response = $es->indices()->create($params);
        var_dump($response);
    }

  下一篇,寫中文分詞

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM