zoukankan      html  css  js  c++  java
  • 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);
        }
    

      下一篇,写中文分词

     

     

  • 相关阅读:
    ASP.NET Core项目解读之常用概念方法
    ASP.NET Core项目解读之appsettings.json
    ASP.NET Core项目解读之wwwroot
    ASP.NET Core项目解读之launchSettings.json
    理解.NET5
    搜索引擎学习(四)中文分词器
    搜索引擎学习(五)Lucene操作索引
    搜索引擎学习(三)Lucene查询索引
    搜索引擎学习(二)Lucene创建索引
    搜索引擎学习(一)初识Lucene
  • 原文地址:https://www.cnblogs.com/dongkang/p/6738731.html
Copyright © 2011-2022 走看看