imsamurai/elasticsearch-source

CakePHP 的 Elasticsearch 数据源 (HttpSource)

1.3.1 2014-12-23 11:48 UTC

README

Build Status Coverage Status Latest Stable Version Total Downloads Latest Unstable Version License

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);

# 文档

请阅读 HttpSource 插件 README