Skip to content

Commit

Permalink
Update README.md (#55)
Browse files Browse the repository at this point in the history
  • Loading branch information
marvin255 authored Oct 1, 2024
1 parent 1bcf3c7 commit cfcc092
Showing 1 changed file with 0 additions and 120 deletions.
120 changes: 0 additions & 120 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,123 +222,3 @@
- "#^.+/extracted/30/AS_.+$#" # разрешает все данные для региона
- "#^.+/extracted/AS_.+$#" # разрешает общие словари
# все остальные файлы будут проигнорированы
3. добавить пакетную запись; по умолчанию бандл использует `Doctrine`, что может быть довольно медленно, хоть и дает возможность использовать все её преимущества, например, события; в качестве альтернативы можно подключить `BulkInsertDoctrineStorage`, он значительно быстрее, но не использует события:
```yaml
# config/services.yaml
services:
# заменяем сервис для записи на сервис, который использует bulk insert
liquetsoft_fias.storage.doctrine_storage:
class: Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Storage\BulkInsertDoctrineStorage
arguments:
- '@doctrine.orm.entity_manager'
- '%liquetsoft_fias.insert_batch_count%'
- '@logger'
tags:
- { name: 'liquetsoft_fias.storage' }
``````



Elasticsearch
-------------

Бандл имеет поддержку Elasticsearch для хранения данных ФИАС.

1. Установить обертку для Elasticsearch

```bash
composer req liquetsoft/fias-elastic
```

2. Активировать Elasticsearch в конфигурации

```yaml
# config/packages/liquetsoft_fias.yaml
liquetsoft_fias:
elasticsearch_enable: true
elasticsearch_hosts:
- 'https://elasticsearch'
```

3. Заменить соответствия для сущностей, которые следует сохранять в Elasticsearch:

```yaml
# config/packages/liquetsoft_fias.yaml
liquetsoft_fias:
elasticsearch_enable: true
elasticsearch_hosts:
- 'https://elasticsearch'
entity_bindings:
ADDR_OBJ: App\Entity\AddrObj # для сохранения будет использована Doctrine
ADDR_OBJ_DIVISION: Liquetsoft\Fias\Elastic\Entity\AddrObjDivision # для сохранения будет использован Elasticsearch
```

Список доступных сущностей:

* `Liquetsoft\Fias\Elastic\Entity\AddrObj`
* `Liquetsoft\Fias\Elastic\Entity\AddrObjDivision`
* `Liquetsoft\Fias\Elastic\Entity\AddrObjTypes`
* `Liquetsoft\Fias\Elastic\Entity\AdmHierarchy`
* `Liquetsoft\Fias\Elastic\Entity\Apartments`
* `Liquetsoft\Fias\Elastic\Entity\ApartmentTypes`
* `Liquetsoft\Fias\Elastic\Entity\Carplaces`
* `Liquetsoft\Fias\Elastic\Entity\ChangeHistory`
* `Liquetsoft\Fias\Elastic\Entity\Houses`
* `Liquetsoft\Fias\Elastic\Entity\HouseTypes`
* `Liquetsoft\Fias\Elastic\Entity\MunHierarchy`
* `Liquetsoft\Fias\Elastic\Entity\NormativeDocs`
* `Liquetsoft\Fias\Elastic\Entity\NormativeDocsKinds`
* `Liquetsoft\Fias\Elastic\Entity\NormativeDocsTypes`
* `Liquetsoft\Fias\Elastic\Entity\ObjectLevels`
* `Liquetsoft\Fias\Elastic\Entity\OperationTypes`
* `Liquetsoft\Fias\Elastic\Entity\Param`
* `Liquetsoft\Fias\Elastic\Entity\ParamTypes`
* `Liquetsoft\Fias\Elastic\Entity\ReestrObjects`
* `Liquetsoft\Fias\Elastic\Entity\Rooms`
* `Liquetsoft\Fias\Elastic\Entity\RoomTypes`
* `Liquetsoft\Fias\Elastic\Entity\Steads`

4. Создать требуемые индексы:

```bash
php bin/console liquetsoft:fias:create_elastic_indicies
```
5. Описания индексов можно найти в соответствующих им mapper-классах. Например, `Liquetsoft\Fias\Elastic\IndexMapper\AddrObjIndexMapper` для `Liquetsoft\Fias\Elastic\Entity\AddrObj`.

6. Библиотека предоставляет так же репозиторий для доступа к данным.

```php
<?php
declare(strict_types=1);
namespace App\Fias;
use Liquetsoft\Fias\Elastic\IndexMapper\AddrObjIndexMapper;
use Liquetsoft\Fias\Elastic\Entity\AddrObj;
use Liquetsoft\Fias\Elastic\ElasticSearchRepository\ElasticSearchRepository;
class ActualStatusService
{
private ElasticSearchRepository $repo;
private AddrObjIndexMapper $mapper;
public function __construct(
ElasticSearchRepository $repo,
AddrObjIndexMapper $mapper
) {
$this->repo = $repo;
$this->mapper = $mapper;
}
public function findById(int $id): ?AddrObj
{
$query = $this->mapper->query()->term('id', $id);
return $this->repo->one($query, AddrObj::class);
}
}
```

0 comments on commit cfcc092

Please sign in to comment.