dmtry.me - Читать далее









Search Preview

SphinxSearch пока, привет Elastic & Phalcon

dmtry.me
Статьи English Version
.me > dmtry.me

SEO audit: Content analysis

Language Error! No language localisation is found.
Title SphinxSearch пока, привет Elastic & Phalcon
Text / HTML ratio 31 %
Frame Excellent! The website does not use iFrame solutions.
Flash Excellent! The website does not have any flash contents.
Keywords cloud в = с Elasticsearch curl для на это ' query => product и HTTP по Super array не то Для
Keywords consistency
Keyword Content Title Description Headings
в 14
= 12
с 9
Elasticsearch 8
curl 7
для 6
Headings
H1 H2 H3 H4 H5 H6
9 4 4 1 0 0
Images We found 0 images on this web page.

SEO Keywords (Single)

Keyword Occurrence Density
в 14 0.70 %
= 12 0.60 %
с 9 0.45 %
Elasticsearch 8 0.40 %
curl 7 0.35 %
для 6 0.30 %
на 6 0.30 %
это 6 0.30 %
' 6 0.30 %
query 5 0.25 %
=> 5 0.25 %
product 5 0.25 %
и 5 0.25 %
HTTP 4 0.20 %
по 4 0.20 %
Super 4 0.20 %
array 4 0.20 %
не 4 0.20 %
то 3 0.15 %
Для 3 0.15 %

SEO Keywords (Two Word)

Keyword Occurrence Density
= new 4 0.20 %
Super product 3 0.15 %
query = 3 0.15 %
curl XPUT 3 0.15 %
d ' 3 0.15 %
title Super 3 0.15 %
param array 2 0.10 %
array options 2 0.10 %
curl XGET 2 0.10 %
REST HTTP 2 0.10 %
composer require 2 0.10 %
protected static 2 0.10 %
client = 2 0.10 %
= array 2 0.10 %
— это 2 0.10 %
в PHP 2 0.10 %
с Elasticsearch 2 0.10 %
50000 ' 2 0.10 %
' title 2 0.10 %
' curl 2 0.10 %

SEO Keywords (Three Word)

Keyword Occurrence Density Possible Spam
title Super product 3 0.15 % No
client = new 2 0.10 % No
price 50000 ' 2 0.10 % No
d ' title 2 0.10 % No
' title Super 2 0.10 % No
' curl XPUT 2 0.10 % No
=> 10 productDocument 1 0.05 % No
'price' => 1234500 1 0.05 % No
=> 1234500 '_boost' 1 0.05 % No
1234500 '_boost' => 1 0.05 % No
'_boost' => 10 1 0.05 % No
productDocument = new 1 0.05 % No
10 productDocument = 1 0.05 % No
'test product' 'price' 1 0.05 % No
= new \Elastica\Documentid 1 0.05 % No
new \Elastica\Documentid product 1 0.05 % No
\Elastica\Documentid product Добавление 1 0.05 % No
product Добавление продукта 1 0.05 % No
Добавление продукта elasticaType>addDocumentproductDocument 1 0.05 % No
продукта elasticaType>addDocumentproductDocument Обновление 1 0.05 % No

SEO Keywords (Four Word)

Keyword Occurrence Density Possible Spam
d ' title Super 2 0.10 % No
' title Super product 2 0.10 % No
=> 10 productDocument = 1 0.05 % No
'test product' 'price' => 1 0.05 % No
product' 'price' => 1234500 1 0.05 % No
'price' => 1234500 '_boost' 1 0.05 % No
=> 1234500 '_boost' => 1 0.05 % No
1234500 '_boost' => 10 1 0.05 % No
'_boost' => 10 productDocument 1 0.05 % No
Статьи English Version Обо 1 0.05 % No
=> 'test product' 'price' 1 0.05 % No
productDocument = new \Elastica\Documentid 1 0.05 % No
= new \Elastica\Documentid product 1 0.05 % No
new \Elastica\Documentid product Добавление 1 0.05 % No
\Elastica\Documentid product Добавление продукта 1 0.05 % No
product Добавление продукта elasticaType>addDocumentproductDocument 1 0.05 % No
Добавление продукта elasticaType>addDocumentproductDocument Обновление 1 0.05 % No
продукта elasticaType>addDocumentproductDocument Обновление индекса 1 0.05 % No
10 productDocument = new 1 0.05 % No
id 'title' => 'test 1 0.05 % No

Internal links in - dmtry.me

English Version
Блог Дмитрия Пацура - Страница не найдена
Обо мне
Dmitry Patsura
Читать далее
Решение СЛАУ методом LU-разложения по Алгоритму Краута
Читать далее
Долгожданный выход Zephir 0.7 Beta
Читать далее
SphinxSearch пока, привет Elastic & Phalcon
Читать далее
Open source головного мозга, 128 дней на Github
Читать далее
Улучшаем навыки программирования
Читать далее
AST/JIT & Компиляция/Интерпретация
Читать далее
Как скомпилировать Dev-сборку Phalcon?
Читать далее
Вышел долгожданный Zephir 0.4.2 alpha
Читать далее
Базовая подсветка синтаксиса Zephir в PhpStorm
Читать далее
Почему Phalcon – это не обязательно хорошо?

Dmtry.me Spined HTML


SphinxSearch пока, приветRubberband& Phalcon Статьи English Version Обо мне SphinxSearch пока, приветRubberband& Phalcon Каждый день, месяц появляются новые инструменты для разработки. На протяжении 4 лет я использовал Sphinxsearch, но на днях, благодаря Сергею@serebro, мне пришлось познакомиться с Elasticsearch. Сегодня я буду рассказывать вам о новом поисковом движке Elasticsearch, который становиться стандартом в выборе поискового движка или NoSQL базы данных для хранения данных в целях текстового поиска по ним. Сайт проекта http://www.elasticsearch.org/. По сути Elasticsearch — это новый фронтенд к широко известному индексу Lucene. Главное отличие от конкурентов — это гибкость и простота в использовании. Работа с сервисом происходит в виде общения с помощью REST HTTP интерфейса. Плюсы Я думаю, самое правильное, начать с плюсов: Скорость Плагины Простота настройки (вспоминая sphinx не могу не нарадоваться) JSON, так как протокол сделан поверх HTTP сервера Кроссплатформенность (написан на Java) Realtime индексация Облачность Открытый исходный код Минусы Как таковых не нашел. Если сравнивать с Sphinxsearch, то он проигрывает, причем без вариантов (конфигурация, морфология, настройка индексации, нет REST HTTP). Установка Установка Elasticsearch не сложный процесс. Для начала нужно перейти по ссылке http://www.elasticsearch.org/overview/elkdownloads/ Ubuntu\Debian Если вы используете Debian family систему то процесс установки будет следующим: cd /tmp wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.5.2.deb sudo dpkg -i elasticsearch-1.5.2.deb sudo service elasticsearch start Mac OS X Когда есть mash все просто: mash install elasticsearch Не забываем проверить сервер зайдя на http://localhost:9200/. Используя flourish flourish -X GET http://localhost:9200/ Плагины Elasticsearch радует поддержкой многих функциональных плагинов к нему. Самые популярные: Kibana - это админ панель для анализа аналитики и поиска. Elasticsearch Gui - это GUI написанный на AngularJS. Рекомендую еще расширение Postman для браузеров на основе Chromium (для легкого создания запросов). Пробуем в деле по HTTP REST Добавление записей в индекс Для примера создадим индекс продуктов магазина site и добавим 3 продукта: flourish -XPUT 'http://localhost:9200/site/products/1' -d ' { "title": "Super product", "price": 12345.00 }' flourish -XPUT 'http://localhost:9200/site/products/2' -d ' { "title": "Super product 1234", "price": 500.00 }' flourish -XPUT 'http://localhost:9200/site/products/3' -d ' { "id": "1", "title": "Super product fdsfs", "price": 500.00 }' Поиск Ищем все продукты с названием Super: flourish -XGET 'http://localhost:9200/site/products/_search?q=title:Super&pretty=true' Подсчитываем количество продуктов с ценой равной 500 flourish -XGET 'http://localhost:9200/site/products/_search?q=price:500&pretty=true' Клиенты в PHP Для того что бы использовать ElasticSearch в PHP нам нужно: PHP >= 5.3.9 ComposerFlourishext Зайдем в корень с проектом и установим понравившийся нам клиент, мой выбор это composer require ruflin/elastica Пример использование После установки библиотеке создадим клиент: <?php require 'vendor/autoload.php'; $client = new \Elastica\Client(); Добавление документа $id = 1; $product = array( 'id' => $id, 'title' => 'test product', 'price' => 12345.00, '_boost' => 1.0 ); $productDocument = new \Elastica\Document($id, $product); // Добавление продукта $elasticaType->addDocument($productDocument); // Обновление индекса $elasticaType->getIndex()->refresh(); Поиск $query = new Elastica\Query(); $query ->setFrom(50) ->setSize(10) ->setSort(['price' => 'asc']) ->setFields(['id', 'title', 'price'])]) ->setExplain(true) ->setVersion(true) ->setMinScore(0.5); $client->setQuery($query); var_dump($search->count()); // Кол-во элементов по запросу /** @var \Elastica\ResultSet */ $resultSet = $search->search(); foreach ($search->scanAndScroll() as $scrollId => $resultSet) { // ... } Лучше всего смотреть все в документации. Использование в Phalcon Установим библиотеку для легкой работы: composer require ovr/phalcon-elasticsearch Создадим наш сервис: $client = new \Elastica\Client($di->get('config')->elastica->toArray()); return $client; Создадим модель: <?php namespace Catalog\Model; use Elastica\Exception\NotFoundException; use Elastica\Query; use Phalcon\DI; use Phalcon\DI\Injectable; matriculation Product extends Injectable { use ElasticModelTrait; protected static $index = 'my-project'; protected static $type = 'products'; public $data; /** * @param variety $query * @param variety $options * @return \Elastica\ResultSet */ public static function find(array $query = [], variety $options = null) { return static::getStorage()->search($query, $options); } } Просто запрос: $query = [ '_source' => [ 'id', 'title' ], 'size' => 5, ]; var_dump(Product::find($query)->getResults()); Хорошим примером работы с Elasticsearch будет проект http://phalconist.com/. Русское сообщество Поисковый движок «Elasticsearch» во ВКонтакте. Выводы Elasticsearch - это отличнейшая замена Sphinxsearch, которую уже можно взять и использовать прямо сейчас :) Выбор за тобой :3 Блог работает в start режиме. Если Вы заметили ошибку в статье или хотите предложить нововведения, то Вы можете уведомить меня, используя контакты, указанные на странице, или же сделав pull-request в статью email facebook google+ twitter github Please enable JavaScript to view the comments powered by Disqus. comments powered by Disqus Copyright © Dmitry Patsura @ovr 2014-2018