首页 > 其他分享 >Elasticsearch

Elasticsearch

时间:2024-05-22 22:08:19浏览次数:19  
标签:index 索引 Elasticsearch params array type id

Elasticsearch全文搜索引擎-PHP使用教程。

 

1、声明依赖关系:

        比方说,你的项目中需要一个php版的elasticsearch框架。为了将它添加到你的项目中(下载),你所需要做的就是创建一个 composer.json 文件,其中描述了项目的依赖关系。注意文件要放在你执行composer命令的目录中

1 2 3 4 5 {     "require":{         "elasticsearch/elasticsearch":"~2.0"     } }

2、cmd切换到要下载elasticsearch框架的目录,然后执行命令:composer install

     如有出错误信息:

      [Composer\Downloader\TransportException]

      Content-Length mismatch, received 583439 bytes out of the expected 1215108

     解决办法:切换国内镜像地址,再执行操作

      1、通过命令切换如下:(最终修改的是composer.json)

      composer config -g repo.packagist composer https://packagist.phpcomposer.com

      2、直接修改 composer.json (其实跟方法1是一样的。)

1 2 3 4 5 6 7 8 9 10 11 {     "require":{         "elasticsearch/elasticsearch":"~2.0"     },     "repositories": {         "packagist": {             "type""composer",             "url""https://packagist.phpcomposer.com"         }     } }

001.png

 

 

PHP使用elasticsearch教程

 

下面我们讲一下基本使用方法,需要获取更多使用教程和方法请看官方文档:https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/_overview.html

 

想直接通过文件查看其他方法可以打开以下文件查看(基本使用的方法都在里面):

1、\elasticsearch\src\Elasticsearch\Client.php中的方法

2、\elasticsearch\Namespaces\IndicesNamespace.php中的方法

 

 

ThinkPHP中的模型(已测试过):

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 <?php /**  * Elasticsearch检索引擎模型  */ namespace app\index\model; use Elasticsearch\ClientBuilder;       class Elasticsearch {     //配置     private $config = [         'hosts' => ['http://127.0.0.1:9200']     ];     private $api;     public function __construct()     {         #include(APP_PATH .'/vendor/autoload.php');         #require_once EXTEND_PATH . 'org/elasticsearch/autoload.php';         import('org.elasticsearch.autoload', EXTEND_PATH);         $this->api = ClientBuilder::create()->setHosts($this->config['hosts'])->build();      }       /*************************************************************     /**      * 索引一个文档      * 说明:索引没有被创建时会自动创建索引      */     public function addOne()     {         $params = [];           $params['index'] = 'xiaochuan';           $params['type']  = 'cat';           $params['id']  = '20180407001';  # 不指定就是es自动分配         $params['body']  = array('name' => '小川编程');           return $this->api->index($params);     }       /**      * 索引多个文档      * 说明:索引没有被创建时会自动创建索引      */     public function addAll()     {         $params = [];         for($i = 1; $i < 21; $i++) {               $params['body'][] = [                 'index' => [                     '_index' => 'test_index'.$i,                     '_type'  => 'cat_test',                     '_id'    => $i,                 ]             ];               $params['body'][] = [                   'name' => '小川编程'.$i,                   'content' => '内容'.$i               ];         }           return $this->api->bulk($params);       }       /**      * 获取一个文档      */     public function getOne()     {         $params = [];           $params['index'] = 'xiaochuan';           $params['type']  = 'cat';           $params['id']    = '20180407001';           return $this->api->get($params);      }       /**      * 搜索文档      */     public function search()     {         $params = [];         $params['index'] = 'xiaochuan';           $params['type']  = 'cat';           $params['body']['query']['match']['name'] = '小川编程';           return $this->api->search($params);      }       /**      * 删除文档      * 说明:文档删除后,不会删除对应索引。      */     public function delete()     {         $params = [];           $params['index'] = 'xiaochuan';           $params['type'] = 'cat';           $params['id'] = '20180407001';           return $this->api->delete($params);       }       /*************************************************************     /**      * 创建索引      */     public function createIndex()     {         $params = [];         $params['index']  = 'xiaochuan'         return $this->api->indices()->create($params);       }               /**      * 删除索引:匹配单个 | 匹配多个      * 说明: 索引删除后,索引下的所有文档也会被删除      */       public function deleteIndex()       {             $params = [];           $params['index'] = 'test_index';  # 删除test_index单个索引           #$params['index'] = 'test_index*'; # 删除以test_index开始的所有索引         return $this->api->indices()->delete($params);         }         /*************************************************************       /**      * 设置索引配置      */       public function setIndexConfig()       {             $params = [];           $params['index'] = 'xiaochuan';           $params['body']['index']['number_of_replicas'] = 0;           $params['body']['index']['refresh_interval'] = -1;           return $this->api->indices()->putSettings($params);         }         /**      * 获取索引配置      */       public function getIndexConfig()       {           # 单个获取条件写法         $params['index'] = 'xiaochuan';           # 多个获取条件写法         //$params['index'] = ['xiaochuan', 'test_index'];           return $this->api->indices()->getSettings($params);         }       /**      * 设置索引映射      */       public function setIndexMapping()       {           #  设置索引和类型          $params['index'] = 'xiaochuan';           $params['type']  = 'cat';                       #  向现有索引添加新类型         $myTypeMapping array(               '_source' => array(                   'enabled' => true               ),               'properties' => array(                   'first_name' => array(                       'type' => 'string',                       'analyzer' => 'standard'                   ),                   'age' => array(                       'type' => 'integer'                   )               )           );           $params['body']['cat'] = $myTypeMapping;                       #  更新索引映射          $this->api->indices()->putMapping($params);         }         /**      * 获取索引映射      */       public function getIndexMapping()       {             #  获取所有索引和类型的映射           $ret $this->api->indices()->getMapping();                     /*           #  获取索引为:xiaochuan的映射         $params['index'] = 'xiaochuan';           $ret = $this->api->indices()->getMapping($params);                       #  获取类型为:cat的映射         $params['type'] = 'cat';           $ret = $this->api->indices()->getMapping($params);                       #  获取(索引为:xiaochuan和 类型为:cat)的映射         $params['index'] = 'xiaochuan';           $params['type']  = 'cat'           $ret = $this->api->indices()->getMapping($params);                       #  获取索引为:xiaochuan和test_index的映射         $params['index'] = ['xiaochuan', 'test_index'];           $ret = $this->api->indices()->getMapping($params);          */           return $ret;       }     }

 

其他形式用法测试:

test.php

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 <?php    require_once('vendor/autoload.php');   use Elasticsearch\ClientBuilder;           function get_conn(){       $host 'localhost';       $dbname 'mraz';       $user 'root';       $passwd '111111';               $conn new PDO("mysql:dbname=$dbname;host=$host",$user,$passwd);       return $conn;   }           function create_index(){       //Elastic search php client                       $client = Elasticsearch\ClientBuilder::create()->build();       $sql    "SELECT * FROM emp";       $conn   = get_conn();       $stmt   $conn->query($sql);       $rtn    $stmt->fetchAll();               //delete index which already created       $params array();       $params['index'] = 'emp_index';       $client->indices()->delete($params);               //create index on log_date,src_ip,dest_ip       $rtnCount count($rtn);       for($i=0;$i<$rtnCount;$i++){           $params array();           $params['body'] = array(               'id'       => $rtn[$i]['id'],               'fdName'   => $rtn[$i]['fdName'],               'fdAge'    => $rtn[$i]['fdAge'],               'fdStatus' => $rtn[$i]['fdStatus']           );           $params['index'] = 'emp_index';           $params['type']  = 'emp_type';                       //Document will be indexed to log_index/log_type/autogenerate_id                   $client->index($params);       }       echo 'create index done!';   }           function search(){       //Elastic search php client       $client = Elasticsearch\ClientBuilder::create()->build();       $params array();       $params['index'] = 'emp_index';       $params['type'] = 'emp_type';       $params['body']['query']['match']['fdStatus'] = '1';       $params['body']['sort'] = array('fdAge'=>array('order'=>'desc'));       $params['size'] = 3;         $params['from'] = 1;         $rtn $client->search($params);       var_dump($rtn);   }           set_time_limit(0);   // create_index();   search();   ?>

 

1)创建:

1 2 3 4 5 6 7 include('./vendor/autoload.php');   $elastic new Elasticsearch\Client();   $index['index'] = 'log';  //索引名称   $index['type'] = 'ems_run_log'//类型名称   $data['body']['settings']['number_of_shards'] = 5;  //主分片数量   $data['body']['settings']['number_of_replicas'] = 0; //从分片数量   $elastic->indices()->create($index);

2)插入索引数据:

1 2 3 4 5 6 7 8 9 10 11 12 include('./vendor/autoload.php');   $elastic new Elasticsearch\Client();   $index['index'] = 'log'//索引名称   $index['type'] = 'ems_run_log'//类型名称   $index['id'] = 1   //不指定id,系统会自动生成唯一id   $index['body'] = array(     'mac' => 'fcd5d900beca',     'customer_id' => 3,     'product_id' => 5,     'version' => 2   );   $elastic->index($index);

3)查询:

1 2 3 4 5 6 7 8 9 10 include('./vendor/autoload.php');   $elastic new Elasticsearch\Client();   $index['index'] = 'log'//索引名称   $index['type'] = 'ems_run_log'//类型名称   $index['body']['query']['match']['mac'] = 'fcd5d900beca';   $index['size'] = 10;   $index['from'] = 200;   $elastic->search($index);     #相当于sql语句:select*from ems_run_log where mac='fcd5d900beca' limit 200,10;
1 2 3 4 5 6 7 8 9 10 11 12 13 include('./vendor/autoload.php');   $elastic new Elasticsearch\Client();   $index['index'] = 'log'//索引名称   $index['type'] = 'ems_run_log'//类型名称   $index['body']['query']['bool']['must'] = array(       array('match' => array('mac' => 'fcd5d900beca')),       array('match' => array('product_id' => 20))      );   $index['size'] = 10;   $index['from'] = 200;   $elastic->search($index);     #相当于sql语句:select*from ems_run_log where mac='fcd5d900beca' and product_id=20 limit 200,10;
1 2 3 4 5 6 7 8 9 10 11 12 13 include('./vendor/autoload.php');   $elastic new Elasticsearch\Client();   $index['index'] = 'log'//索引名称   $index['type'] = 'ems_run_log'//类型名称   $index['body']['query']['bool']['should'] = array(         array('match' => array('mac' => 'fcd5d900beca')),         array('match' => array('product_id' => 20))        );   $index['size'] = 10;   $index['from'] = 200;   $elastic->search($index);     #当于sql语句:select*from ems_run_log where mac='fcd5d900beca' or product_id=20 limit 200,10;

Elasticsearch全文搜索引擎-PHP使用教程。

 小川 2018-07-07  PHP

用Composer来生成php版的elasticsearch框架

 

如果你还没有安装Composer的话请看:Composer安装教程文章

 

1、声明依赖关系:

        比方说,你的项目中需要一个php版的elasticsearch框架。为了将它添加到你的项目中(下载),你所需要做的就是创建一个 composer.json 文件,其中描述了项目的依赖关系。注意文件要放在你执行composer命令的目录中

1 2 3 4 5 {     "require":{         "elasticsearch/elasticsearch":"~2.0"     } }

2、cmd切换到要下载elasticsearch框架的目录,然后执行命令:composer install

     如有出错误信息:

      [Composer\Downloader\TransportException]

      Content-Length mismatch, received 583439 bytes out of the expected 1215108

     解决办法:切换国内镜像地址,再执行操作

      1、通过命令切换如下:(最终修改的是composer.json)

      composer config -g repo.packagist composer https://packagist.phpcomposer.com

      2、直接修改 composer.json (其实跟方法1是一样的。)

1 2 3 4 5 6 7 8 9 10 11 {     "require":{         "elasticsearch/elasticsearch":"~2.0"     },     "repositories": {         "packagist": {             "type""composer",             "url""https://packagist.phpcomposer.com"         }     } }

001.png

 

 

PHP使用elasticsearch教程

 

下面我们讲一下基本使用方法,需要获取更多使用教程和方法请看官方文档:https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/_overview.html

 

想直接通过文件查看其他方法可以打开以下文件查看(基本使用的方法都在里面):

1、\elasticsearch\src\Elasticsearch\Client.php中的方法

2、\elasticsearch\Namespaces\IndicesNamespace.php中的方法

 

 

ThinkPHP中的模型(已测试过):

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 <?php /**  * Elasticsearch检索引擎模型  */ namespace app\index\model; use Elasticsearch\ClientBuilder;       class Elasticsearch {     //配置     private $config = [         'hosts' => ['http://127.0.0.1:9200']     ];     private $api;     public function __construct()     {         #include(APP_PATH .'/vendor/autoload.php');         #require_once EXTEND_PATH . 'org/elasticsearch/autoload.php';         import('org.elasticsearch.autoload', EXTEND_PATH);         $this->api = ClientBuilder::create()->setHosts($this->config['hosts'])->build();      }       /*************************************************************     /**      * 索引一个文档      * 说明:索引没有被创建时会自动创建索引      */     public function addOne()     {         $params = [];           $params['index'] = 'xiaochuan';           $params['type']  = 'cat';           $params['id']  = '20180407001';  # 不指定就是es自动分配         $params['body']  = array('name' => '小川编程');           return $this->api->index($params);     }       /**      * 索引多个文档      * 说明:索引没有被创建时会自动创建索引      */     public function addAll()     {         $params = [];         for($i = 1; $i < 21; $i++) {               $params['body'][] = [                 'index' => [                     '_index' => 'test_index'.$i,                     '_type'  => 'cat_test',                     '_id'    => $i,                 ]             ];               $params['body'][] = [                   'name' => '小川编程'.$i,                   'content' => '内容'.$i               ];         }           return $this->api->bulk($params);       }       /**      * 获取一个文档      */     public function getOne()     {         $params = [];           $params['index'] = 'xiaochuan';           $params['type']  = 'cat';           $params['id']    = '20180407001';           return $this->api->get($params);      }       /**      * 搜索文档      */     public function search()     {         $params = [];         $params['index'] = 'xiaochuan';           $params['type']  = 'cat';           $params['body']['query']['match']['name'] = '小川编程';           return $this->api->search($params);      }       /**      * 删除文档      * 说明:文档删除后,不会删除对应索引。      */     public function delete()     {         $params = [];           $params['index'] = 'xiaochuan';           $params['type'] = 'cat';           $params['id'] = '20180407001';           return $this->api->delete($params);       }       /*************************************************************     /**      * 创建索引      */     public function createIndex()     {         $params = [];         $params['index']  = 'xiaochuan'         return $this->api->indices()->create($params);       }               /**      * 删除索引:匹配单个 | 匹配多个      * 说明: 索引删除后,索引下的所有文档也会被删除      */       public function deleteIndex()       {             $params = [];           $params['index'] = 'test_index';  # 删除test_index单个索引           #$params['index'] = 'test_index*'; # 删除以test_index开始的所有索引         return $this->api->indices()->delete($params);         }         /*************************************************************       /**      * 设置索引配置      */       public function setIndexConfig()       {             $params = [];           $params['index'] = 'xiaochuan';           $params['body']['index']['number_of_replicas'] = 0;           $params['body']['index']['refresh_interval'] = -1;           return $this->api->indices()->putSettings($params);         }         /**      * 获取索引配置      */       public function getIndexConfig()       {           # 单个获取条件写法         $params['index'] = 'xiaochuan';           # 多个获取条件写法         //$params['index'] = ['xiaochuan', 'test_index'];           return $this->api->indices()->getSettings($params);         }       /**      * 设置索引映射      */       public function setIndexMapping()       {           #  设置索引和类型          $params['index'] = 'xiaochuan';           $params['type']  = 'cat';                       #  向现有索引添加新类型         $myTypeMapping array(               '_source' => array(                   'enabled' => true               ),               'properties' => array(                   'first_name' => array(                       'type' => 'string',                       'analyzer' => 'standard'                   ),                   'age' => array(                       'type' => 'integer'                   )               )           );           $params['body']['cat'] = $myTypeMapping;                       #  更新索引映射          $this->api->indices()->putMapping($params);         }         /**      * 获取索引映射      */       public function getIndexMapping()       {             #  获取所有索引和类型的映射           $ret $this->api->indices()->getMapping();                     /*           #  获取索引为:xiaochuan的映射         $params['index'] = 'xiaochuan';           $ret = $this->api->indices()->getMapping($params);                       #  获取类型为:cat的映射         $params['type'] = 'cat';           $ret = $this->api->indices()->getMapping($params);                       #  获取(索引为:xiaochuan和 类型为:cat)的映射         $params['index'] = 'xiaochuan';           $params['type']  = 'cat'           $ret = $this->api->indices()->getMapping($params);                       #  获取索引为:xiaochuan和test_index的映射         $params['index'] = ['xiaochuan', 'test_index'];           $ret = $this->api->indices()->getMapping($params);          */           return $ret;       }     }

 

其他形式用法测试:

test.php

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 <?php    require_once('vendor/autoload.php');   use Elasticsearch\ClientBuilder;           function get_conn(){       $host 'localhost';       $dbname 'mraz';       $user 'root';       $passwd '111111';               $conn new PDO("mysql:dbname=$dbname;host=$host",$user,$passwd);       return $conn;   }           function create_index(){       //Elastic search php client                       $client = Elasticsearch\ClientBuilder::create()->build();       $sql    "SELECT * FROM emp";       $conn   = get_conn();       $stmt   $conn->query($sql);       $rtn    $stmt->fetchAll();               //delete index which already created       $params array();       $params['index'] = 'emp_index';       $client->indices()->delete($params);               //create index on log_date,src_ip,dest_ip       $rtnCount count($rtn);       for($i=0;$i<$rtnCount;$i++){           $params array();           $params['body'] = array(               'id'       => $rtn[$i]['id'],               'fdName'   => $rtn[$i]['fdName'],               'fdAge'    => $rtn[$i]['fdAge'],               'fdStatus' => $rtn[$i]['fdStatus']           );           $params['index'] = 'emp_index';           $params['type']  = 'emp_type';                       //Document will be indexed to log_index/log_type/autogenerate_id                   $client->index($params);       }       echo 'create index done!';   }           function search(){       //Elastic search php client       $client = Elasticsearch\ClientBuilder::create()->build();       $params array();       $params['index'] = 'emp_index';       $params['type'] = 'emp_type';       $params['body']['query']['match']['fdStatus'] = '1';       $params['body']['sort'] = array('fdAge'=>array('order'=>'desc'));       $params['size'] = 3;         $params['from'] = 1;         $rtn $client->search($params);       var_dump($rtn);   }           set_time_limit(0);   // create_index();   search();   ?>

 

1)创建:

1 2 3 4 5 6 7 include('./vendor/autoload.php');   $elastic new Elasticsearch\Client();   $index['index'] = 'log';  //索引名称   $index['type'] = 'ems_run_log'//类型名称   $data['body']['settings']['number_of_shards'] = 5;  //主分片数量   $data['body']['settings']['number_of_replicas'] = 0; //从分片数量   $elastic->indices()->create($index);

2)插入索引数据:

1 2 3 4 5 6 7 8 9 10 11 12 include('./vendor/autoload.php');   $elastic new Elasticsearch\Client();   $index['index'] = 'log'//索引名称   $index['type'] = 'ems_run_log'//类型名称   $index['id'] = 1   //不指定id,系统会自动生成唯一id   $index['body'] = array(     'mac' => 'fcd5d900beca',     'customer_id' => 3,     'product_id' => 5,     'version' => 2   );   $elastic->index($index);

3)查询:

1 2 3 4 5 6 7 8 9 10 include('./vendor/autoload.php');   $elastic new Elasticsearch\Client();   $index['index'] = 'log'//索引名称   $index['type'] = 'ems_run_log'//类型名称   $index['body']['query']['match']['mac'] = 'fcd5d900beca';   $index['size'] = 10;   $index['from'] = 200;   $elastic->search($index);     #相当于sql语句:select*from ems_run_log where mac='fcd5d900beca' limit 200,10;
1 2 3 4 5 6 7 8 9 10 11 12 13 include('./vendor/autoload.php');   $elastic new Elasticsearch\Client();   $index['index'] = 'log'//索引名称   $index['type'] = 'ems_run_log'//类型名称   $index['body']['query']['bool']['must'] = array(       array('match' => array('mac' => 'fcd5d900beca')),       array('match' => array('product_id' => 20))      );   $index['size'] = 10;   $index['from'] = 200;   $elastic->search($index);     #相当于sql语句:select*from ems_run_log where mac='fcd5d900beca' and product_id=20 limit 200,10;
1 2 3 4 5 6 7 8 9 10 11 12 13 include('./vendor/autoload.php');   $elastic new Elasticsearch\Client();   $index['index'] = 'log'//索引名称   $index['type'] = 'ems_run_log'//类型名称   $index['body']['query']['bool']['should'] = array(         array('match' => array('mac' => 'fcd5d900beca')),         array('match' => array('product_id' => 20))        );   $index['size'] = 10;   $index['from'] = 200;   $elastic->search($index);     #当于sql语句:select*from ems_run_log where mac='fcd5d900beca' or product_id=20 limit 200,10;
1 2 3 4 5 6 7 8 9 10 11 12 13 include('./vendor/autoload.php');   $elastic new Elasticsearch\Client();   $index['index'] = 'log'//索引名称   $index['type'] = 'ems_run_log'//类型名称   $index['body']['query']['bool']['must_not'] = array(      array('match' => array('mac' => 'fcd5d900beca')),      array('match' => array('product_id' => 20))     );   $index['size'] = 10;   $index['from'] = 200;   $elastic->search($index);     #相当于sql语句:select*from ems_run_log where mac!='fcd5d900beca' and product_id!=20 limit 200,10;
1 2 3 4 5 6 7 8 9 10 11 12 include('./vendor/autoload.php');   $elastic new Elasticsearch\Client();   $index['index'] = 'log'//索引名称   $index['type'] = 'ems_run_log'//类型名称   $index['body']['query']['range'] = array(      'id' => array('gte' => 20,'lt' => 30);    );   $index['size'] = 10;   $index['from'] = 200;   $elastic->search($index);     #相当于sql语句:select*from ems_run_log where id>=20 and id<30  limit 200,10;

4)删除文档:

1 2 3 4 5 6 include('./vendor/autoload.php');   $elastic new Elasticsearch\Client();   $index['index'] = 'test';  //索引名称   $index['type'] = 'ems_test'//类型名称   $index['id'] = 2;    $elastic->delete($index);
1 2 3 4 5 6 7 8 9 10 11 12 13 include('./vendor/autoload.php');   $elastic new Elasticsearch\Client();   $index['index'] = 'log'//索引名称   $index['type'] = 'ems_run_log'//类型名称   $index['body']['query']['bool']['must_not'] = array(      array('match' => array('mac' => 'fcd5d900beca')),      array('match' => array('product_id' => 20))     );   $index['size'] = 10;   $index['from'] = 200;   $elastic->search($index);     #相当于sql语句:select*from ems_run_log where mac!='fcd5d900beca' and product_id!=20 limit 200,10;
1 2 3 4 5 6 7 8 9 10 11 12 include('./vendor/autoload.php');   $elastic new Elasticsearch\Client();   $index['index'] = 'log'//索引名称   $index['type'] = 'ems_run_log'//类型名称   $index['body']['query']['range'] = array(      'id' => array('gte' => 20,'lt' => 30);    );   $index['size'] = 10;   $index['from'] = 200;   $elastic->search($index);     #相当于sql语句:select*from ems_run_log where id>=20 and id<30  limit 200,10;

4)删除文档:

1 2 3 4 5 6 include('./vendor/autoload.php');   $elastic new Elasticsearch\Client();   $index['index'] = 'test';  //索引名称   $index['type'] = 'ems_test'//类型名称   $index['id'] = 2;    $elastic->delete($index);

标签:index,索引,Elasticsearch,params,array,type,id
From: https://www.cnblogs.com/yipianchuyun/p/18207237

相关文章

  • 一个使用Python加密连接Elasticsearch的简单封装
    依赖:elasticsearch==7.17.9eshelpercore.py:#!/usr/bin/python3#coding=utf-8importdatetimeimportosimportsslfromelasticsearchimportElasticsearchdefget_env()->str:#这里指定查询的环境索引return"uat"defget_output_file_pat......
  • elasticsearch存储经纬度且按照范围进行查询
    elasticsearch存储经纬度且按照范围进行查询背景:我在客户那边有很多舆情事件数据,数据里面包含的是有经纬度的,项目需求是用户在系统中输入一个地址,系统就可以查询到该地址100米500米1000米范围内的事件信息,当然了还可以输入事件的关键信息做模糊查询,所以我选择了使用es来存储......
  • ES(Elasticsearch)入门-深入索引操作
    1.创建索引使用PUT请求。结构PUT/${index_name}//索引名称{"settings":{...索引相关的配置项目,如何:分配个数副分片个数等},"mappings":{...数据的结构}}-----------------------------------实例---------------------------......
  • 自动化部署elasticsearch三节点集群
    什么是Elasticsearch?Elasticsearch是一个开源的分布式搜索和分析引擎,构建在ApacheLucene的基础上。它提供了一个分布式多租户的全文搜索引擎,具有实时分析功能。Elasticsearch最初是用于构建全文搜索引擎,但它的功能已经扩展到包括日志分析、应用程序性能监控、地理信息系统等......
  • ElasticSearch (ES从入门到精通一篇就够了)
    ES分布式搜索引擎注意:在没有创建库的时候搜索,ES会创建一个库并自动创建该字段并且设置为String类型也就是text什么是elasticsearch?一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能什么是elasticstack(ELK)?是以elasticsearch为核心的技术栈,包......
  • ElasticSearch系列---【备份或重命名索引】
    备份或重命名1.问题描述我们原有的索引main-data-202403,字段不足,需要新加入字段,原有索引不用了,但怕后面业务又需要这些数,所以我们需要新建一个索引bak-main-data-202403,把main-data-202403迁移过去,删除原索引main-data-202403,再新建加入了新字段的同名索引main-data-202403,其......
  • 【Elasticsearch】系统已经配置了JAVA_HOME,ElasticSearch源码还是操作gradle失败(JAVA_
    先看下报错内容吧,如下:FAILURE:Buildcompletedwith2failures.1:Taskfailedwithanexception.-----------*Where:Buildfile'/Users/liubolun/IdeaProjects/elasticsearch/benchmarks/build.gradle'line:20*Whatwentwrong:Aproblemoccurredevalu......
  • docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES
    一、前言在数据量大的企业级实践中,Elasticsearch显得非常常见,特别是数据表超过千万级后,无论怎么优化,还是有点力不从心!使用中,最首先的问题就是怎么把千万级数据同步到Elasticsearch中,在一些开源框架中知道了,有专门进行同步的!那就是Logstash。在思考,同步完怎么查看呢,这时Kibana映入......
  • ElasticSearch 数据并发冲突处理
    一.概述Elasticsearch使用文档版本来控制文档的并发更新,并用于解决冲突。Elasticsearch从写入到检索的时间间隔是由刷新频率refresh_interval设定的,该值可以更新,但默认最快是1s,也就是这1秒之内如果同一条数据(文档的新版本必须复制到群集中的其他节点。Elasticsearch也是异......
  • 安装 elasticsearch & kibana (docker )
    1.elasticsearchdockerrun-e"ES_JAVA_OPTS=-Xms256m-Xmx256m"\--nameelasticsearch-p9200:9200-p9300:9300\-e"discovery.type=single-node"\-v/usr/share/elasticsearch/config:/usr/share/elasticsearch/config\-delasticsea......