美文网首页
初窥 Elasticsearch-PHP [1.0]

初窥 Elasticsearch-PHP [1.0]

作者: babybus_hentai | 来源:发表于2016-03-15 17:20 被阅读5659次

初始化


Elasticsearch-PHP
下载地址:http://www.thinkphp.cn/code/download/id/1290.html
教程以ThinkPHP为例

下载Elasticsearch-PHP文件放在ThinkPHP\Library\Vendor\

    Vendor('Elasticsearch.autoload');
    $params['hosts'] = array(
        '127.0.0.1:9200'
    );
    $this->client = new \Elasticsearch\Client($params);

如果不给hosts参数也是可以的,默认为localhost:9200

索引

创建一个索引

  • 自增ID
      public function create_index(){
          $indexParams['index'] = 'my_index';
          $indexParams['type'] = 'my_index';
          $indexParams['body']['settings']['number_of_shards'] = 2;
          $indexParams['body']['settings']['number_of_replicas'] = 0;
          
          $this->client->create($indexParams);
      }
    
  • 使用自己的ID

    只要再添加一个id字段即可。例:

      $indexParams['id'] = '123';
    
删除索引

public function delete_index(){
    $deleteParams['index'] = 'my_index';

    $ret = $this->client->indices()->delete($deleteParams);
    dump($ret);
}

文档


public function add_document(){
    $params = array();
    $params['body'] = array(
        'testField' => 'dfdsfdsf',
        'ok' => '1  '
    );
    $params['index'] = 'my_index2';
    $params['type'] = 'my_index2';
    $params['id'] = '222';

    $ret = $this->client->index($params);

    dump($ret);
}


  • 根据id、index、type来查询(一条数据,精确查询)
      public function get_document(){
          $getParams = array();
          $getParams['index'] = 'my_index';
          $getParams['type'] = 'my_index';
          $getParams['id'] = 'w1231313';
          
          $retDoc = $this->client->get($getParams);
          dump($retDoc);
      }
    
  • 模糊查询
      public function search_(){
          $searchParams = array();
          $searchParams['body'] = array(
              'query' => array(
                  'match' => array(
                      'testField' => 'dfdsfdsf'
                  )
              )
          );
          
          $retDoc = $this->client->search($searchParams);
          dump($retDoc);
      }
    
  • 检查文档是否存在
      public function exists(){
          $getParams = array(
              'index' => 'my_index',
              'type' => 'my_index',
              'id' => 'w1231313'
          );
    
          $exists = $this->client->exists($getParams);
          dump($exists);
      } 
    


    public function update_document(){
        $updateParams = array();
        $updateParams['index'] = 'my_index';
        $updateParams['type'] = 'my_index';
        $updateParams['id'] = 'w1231313';
        $updateParams['body']['doc']['testField']  = 'xxxx';

        $response = $this->client->update($updateParams);
        dump($response);
    }


    public function delete_document(){
        $deleteParams = array();
        $deleteParams['index'] = 'my_index';
        $deleteParams['type'] = 'my_index';
        $deleteParams['id'] = 'w1231313';

        $retDelete = $this->client->delete($deleteParams);
        dump($retDelete);
    }

搜索

  • 空查询
      public function search(){
          $retDoc = $this->client->search();
          dump($retDoc);
      }    
    

    当然可以加上其他的一些条件,例如:

      $searchParams['index'] = 'my_index';
      $searchParams['type'] = 'my_index';
    
  • 查询与过滤

term : 相当于模糊查询
match : 相当于精确查询

    public function test111(){
        $params['index'] = 'my_index';
        $params['type']  = 'my_index';

        $filter = array();
        $filter['term']['my_field'] = 'abc';

        $query = array();
        $query['match']['my_other_field'] = 'xyz';

        $params['body']['query']['filtered'] = array(
            "filter" => $filter,
            "query"  => $query
        );

        $results = $this->client->search($params);
        dump($results);
    }
  • 分页

from : 跳过开始的结果数,默认0
size: 结果数,默认为10

    public function search(){
        $searchParams['index'] = 'my_index';
        $searchParams['type'] = 'my_index';
        $searchParams['from'] = 0;
        $searchParams['size'] = 100;
        
        $retDoc = $this->client->search($searchParams);
        dump($retDoc);
    }
  • 布尔查询

must : 多个查询条件的完全匹配,相当于 and。
must_not : 多个查询条件的相反匹配,相当于 not。
should : 至少有一个查询条件匹配, 相当于 or。

    public function boolquery(){
        $params['index'] = 'my_index';
        $params['type']  = 'my_index';
        $params['body']['query']['bool']['must'] = array(
            array('match' => array('testField' => 'abc')),
            array('match' => array('anotherTestField' => 'xyz')),
        );

        $params['body']['query']['bool']['must_not'] = array(
            array('term' => array('testField' => 'abc'))
        );

        $results = $this->client->search($params);
        dump($results);
    }

END

大致的一些使用如上,若有疑问,女生请找我,男生自己看API。
传送门
es-API:http://es.xiaoleilu.com/054_Query_DSL/80_Validating_queries.html
es-PHP-API:https://www.elastic.co/guide/en/elasticsearch/client/php-api/1.0/_search_operations.html

相关文章

  • 初窥 Elasticsearch-PHP [1.0]

    初始化 Elasticsearch-PHP下载地址:http://www.thinkphp.cn/code/dow...

  • 2.Elasticsearch-PHP

    Elasticsearch-PHP

  • 初窥

    初窥世界的美好 白的风 白的肌肤 和盈盈一握的腰肢 在你的头发里 有一个蓝色大海的梦 蓝的帆船和蓝的浪花 自然是美...

  • 初窥

    这个积分管理项目已经到收尾的阶段了,感受良多。 对于错误处理这方面这周我的规划也更为清楚一些了。明天如果能够预期结...

  • elasticsearch之PHP封装类

    elasticsearch-php 类封装

  • 文案写手的确认清单

    写文案就和打怪练级一样,文案初窥门径的就是入门版本1.0。此后你必须通过时间积累和学习,开始进入文案进阶。当你有了...

  • 初窥南京

    古鸡鸣寺门外,一条长满爬山虎的墙。 城墙下的绿植。 1912街区,没有什么能过阻挡,我对自由的向往。 午后墙壁上斑...

  • 初窥HTTP

    要知道HTTP肯定要先知道WWW,下面我用思维导图来介绍下: 1,弄懂了上图的关系,接下来着重介绍HTTP。 先介...

  • 初窥Scrapy

    Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘,信息处理或存储历史数据...

  • mongodb初窥

    启动MongoDB服务:在 MongoDB 安装目录的 bin 目录下执行mongod show dbs -- 显...

网友评论

      本文标题:初窥 Elasticsearch-PHP [1.0]

      本文链接:https://www.haomeiwen.com/subject/oskqlttx.html