imsamurai / elasticsearch-source
CakePHP 的 Elasticsearch 数据源 (HttpSource)
1.3.1
2014-12-23 11:48 UTC
Requires
- composer/installers: *
- imsamurai/http-source: >=1.2.1
README
CakePHP ElasticsearchSource 是用于 Elasticsearch 的 DataSource 插件
安装
步骤 1: 克隆或下载 HttpSource
步骤 2: 克隆或下载到 Plugin/ElasticsearchSource
cd my_cake_app/app git://github.com/imsamurai/CakePHP-ElasticsearchSource-Datasource.git Plugin/ElasticsearchSource
或者如果你使用 git 将其作为子模块添加
cd my_cake_app
git submodule add "git://github.com/imsamurai/CakePHP-ElasticsearchSource-Datasource.git" "app/Plugin/ElasticsearchSource"
然后更新子模块
git submodule init
git submodule update
步骤 3: 将你的配置添加到 database.php
并将其设置为模型
:: database.php ::
public $elasticsearch = array( 'datasource' => 'ElasticsearchSource.Http/ElasticsearchSource', 'host' => 'example.com', 'port' => 'some port' ); public $elasticsearchTest = array( 'datasource' => 'ElasticsearchSource.Http/ElasticsearchSource', 'host' => 'localhost', 'prefix' => '', 'port' => 9200, 'timeout' => 5 );
然后创建模型
:: Elasticsearch.php ::
public $useDbConfig = 'elasticsearch'; public $useTable = '<desired endpoint, for ex: "_search">';
步骤 4: 加载插件
:: bootstrap.php ::
CakePlugin::load('HttpSource', array('bootstrap' => true, 'routes' => true)); CakePlugin::load('ElasticsearchSource', array('bootstrap' => false, 'routes' => true));
# 测试
要运行测试,请在 database.php
中添加并填写 $elasticsearchTest
# 用法
你可以像数据库表一样使用 Elasticsearch
$this->Elasticsearch->setSource('search'); $params = array( 'conditions' => array( 'query' => array( "term" => array("title" => "apple") ) ), 'fields' => array('title', 'rank'), 'order' => array('rank' => 'desc'), 'offset' => 2 ); $result = $this->Elasticsearch->find('first', $params);
# 文档