You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Klimov Paul 2c22fe3f25 Code style and docs at "yii\sphinx\*" fixed. 11 years ago
..
ActiveQuery.php Code style and docs at "yii\sphinx\*" fixed. 11 years ago
ActiveRecord.php Code style and docs at "yii\sphinx\*" fixed. 11 years ago
ActiveRelation.php Sphinx documentation updated. 11 years ago
ColumnSchema.php Sphinx MVA insert and update resolved. 11 years ago
Command.php yii\sphinx\Command reworked to extend yii\db\Command. 11 years ago
Connection.php Redundant typecast removed from yii\sphinx\ActiveRecord::create() 11 years ago
IndexSchema.php Index schema type support added to Sphinx 11 years ago
LICENSE.md Sphinx extensions skeleton created. 11 years ago
Query.php Sphinx documentation updated. 11 years ago
QueryBuilder.php Sphinx Active Record updated to be compatible with ActiveDataProvider. 11 years ago
README.md Docs for Sphinx extension updated. 11 years ago
Schema.php Code style and docs at "yii\sphinx\*" fixed. 11 years ago
composer.json Sphinx documentation updated. 11 years ago

README.md

Yii 2.0 Public Preview - Sphinx Extension

Thank you for choosing Yii - a high-performance component-based PHP framework.

If you are looking for a production-ready PHP framework, please use Yii v1.1.

Yii 2.0 is still under heavy development. We may make significant changes without prior notices. Yii 2.0 is not ready for production use yet.

Build Status

This is the yii2-sphinx extension.

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require yiisoft/yii2-sphinx "*"

or add

"yiisoft/yii2-sphinx": "*"

to the require section of your composer.json.

Note: You might have to run php composer.phar selfupdate

Usage & Documentation

This extension adds Sphinx full text search engine extension for the Yii framework. This extension interact with Sphinx search daemon using MySQL protocol and SphinxQL query language. In order to setup Sphinx "searchd" to support MySQL protocol following configuration should be added:

searchd
{
	listen = localhost:9306:mysql41
	...
}

This extension supports all Sphinx features including Runtime Indexes. Since this extension uses MySQL protocol to access Sphinx, it shares base approach and much code from the regular "yii\db" package.

To use this extension, simply add the following code in your application configuration:

return [
	//....
	'components' => [
		'sphinx' => [
			'class' => 'yii\sphinx\Connection',
			'dsn' => 'mysql:host=127.0.0.1;port=9306;',
			'username' => '',
			'password' => '',
		],
	],
];

This extension provides ActiveRecord solution similar ot the \yii\db\ActiveRecord. To declare an ActiveRecord class you need to extend \yii\sphinx\ActiveRecord and implement the indexName method:

use yii\sphinx\ActiveRecord;

class Article extends ActiveRecord
{
	/**
	 * @return string the name of the index associated with this ActiveRecord class.
	 */
	public static function indexName()
	{
		return 'idx_article';
	}
}

You can use \yii\data\ActiveDataProvider with the \yii\sphinx\Query and \yii\sphinx\ActiveQuery:

use yii\data\ActiveDataProvider;
use yii\sphinx\Query;

$query = new Query;
$query->from('yii2_test_article_index')->match('development');
$provider = new ActiveDataProvider([
	'query' => $query,
	'pagination' => [
		'pageSize' => 10,
	]
]);
$models = $provider->getModels();
use yii\data\ActiveDataProvider;
use app\models\Article;

$provider = new ActiveDataProvider([
	'query' => Article::find(),
	'pagination' => [
		'pageSize' => 10,
	]
]);
$models = $provider->getModels();