mongosoft/yii2-xmlpipe Sphinx XmlPipe Extension for Yii 2

extensionsphinxxmlpipexml-pipexmlpipe2

Sphinx XmlPipe Extension for Yii 2

This extension provides an easy way to create xmlpipe2 data source for the Sphinx search engine.

Latest Stable Version Total Downloads

Installation

The preferred way to install this extension is through composer.

Either run

composer require --prefer-dist mongosoft/yii2-xmlpipe "*"

or add

"mongosoft/yii2-xmlpipe": "*"

to the require section of your composer.json file.

Usage

XmlPipe document

<?php

namespace app\models;

use mongosoft\xmlpipe\BaseXmlPipe;

class XmlPipeDocument extends BaseXmlPipe
{
    /**
     * @inheritdoc
     */
    public function fields()
    {
        return [
            'name',
            'description',
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributes()
    {
        return [
            ['name' => 'type', 'type' => 'int', 'bits' => 16],
            ['name' => 'name', 'type' => 'string'],
            ['name' => 'description', 'type' => 'string'],
        ];
    }

    /**
     * @inheritdoc
     */
    public function addDocuments()
    {
        $query = Items::find()
            ->select(['type', 'full_name', 'description'])
            ->asArray();

        foreach ($query->each() as $item) {
            $this->pushDocument([
                'type' => $item['type'],
                'name' => $item['full_name'],
                'description' => $item['description'],
            ]);
        }
    }
}

Controller

<?php

namespace app\controllers;

use yii\web\Controller;

class TestController extends Controller
{
    /**
     * @inheritdoc
     */
    public function actions()
    {
        return [
            'xmlpipe' => [
                'class' => 'mongosoft\xmlpipe\Action',
                'document' => 'app\models\XmlPipeDocument',
            ],
        ];
    }
}

Sphinx config

Add the following lines to the configuration file (sphinx.conf)

source myindex
{
    type               = xmlpipe2
    xmlpipe_command    = curl http://localhost/test/xmlpipe
}

index myindex
{
    source             = myindex
    path               = /var/path/to/index/myindex
    docinfo            = extern
    morphology         = lemmatize_ru
    charset_type       = utf-8
}

Statistics

Downloads
GitHub Stars
GitHub Forks

Releases

Comments



0.1.1 is the latest of 2 releases



BSD-3-Clause license
Stats
7 github stars & 0 github forks
9 downloads in the last day
221 downloads in the last 30 days
6948 total downloads