Skip to content

Commit

Permalink
add some docs
Browse files Browse the repository at this point in the history
  • Loading branch information
solverat committed Jul 15, 2019
1 parent b8ee3f7 commit 2e49534
Show file tree
Hide file tree
Showing 3 changed files with 102 additions and 132 deletions.
15 changes: 7 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Pimcore 5/6 - Dynamic Search
# Pimcore - Dynamic Search

![Dynamic Search Schema](https://user-images.githubusercontent.com/700119/59977691-d9ba9580-95d4-11e9-8d25-c87308e5e48c.png)

Expand All @@ -7,11 +7,8 @@
[![Travis](https://img.shields.io/travis/com/dachcom-digital/pimcore-dynamic-search/master.svg?style=flat-square)](https://travis-ci.com/dachcom-digital/pimcore-dynamic-search)
[![PhpStan](https://img.shields.io/badge/PHPStan-level%202-brightgreen.svg?style=flat-square)](#)

# Attention!
This bundle has no stable release yet and is allowed to introduce major changes without any further warnings.

## Requirements
* Pimcore >= 5.4.0
* Pimcore >= 5.8.0

## Introduction
The Dynamic Search Bundle allows you to redefine your search strategy. It's based on several data- and index providers.
Expand All @@ -29,10 +26,14 @@ The Dynamic Search Bundle allows you to redefine your search strategy. It's base

```json
"require" : {
"dachcom-digital/dynamic-search" : "~0.1.0"
"dachcom-digital/dynamic-search" : "~0.3.0"
}
```

## Further Information
- [Example Setup](docs/0_ExampleSetup.md)
- [Context Guard](#)

### Installation via Extension Manager
After you have installed the Dynamic Search Bundle via composer, open pimcore backend and go to `Tools` => `Extension`:
- Click the green `+` Button in `Enable / Disable` row
Expand All @@ -52,8 +53,6 @@ After you have updated the Dynamic Search Bundle via composer:
Does actually the same as the update command and preferred in CI-Workflow:
- Execute: `$ bin/console pimcore:migrations:migrate -b DynamicSearchBundle`

## Further Information
- [Example Setup](docs/0_ExampleSetup.md)

## Copyright and License
Copyright: [DACHCOM.DIGITAL](http://dachcom-digital.com)
Expand Down
217 changes: 94 additions & 123 deletions docs/0_ExampleSetup.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@
### composer.json
```json
"require" : {
"dachcom-digital/dynamic-search": "~0.1.0",
"dachcom-digital/dynamic-search-data-provider-crawler": "~0.1.0",
"dachcom-digital/dynamic-search-data-provider-trinity": "~0.1.0",
"dachcom-digital/dynamic-search-index-provider-lucene": "~0.1.0",
"dachcom-digital/dynamic-search": "~0.3.0",
"dachcom-digital/dynamic-search-data-provider-trinity": "~0.3.0",
"dachcom-digital/dynamic-search-index-provider-lucene": "~0.3.0",
}
```

Expand All @@ -18,145 +17,117 @@ dynamic_search_frontend:
### app/config/config.yml
```yaml

services:

AppBundle\DynamicSearch\IndexDefinition\Trinity\Definition:
tags:
- { name: dynamic_search.document_definition_builder }

dynamic_search:

context:

ecommerce:

index_provider:
service: 'lucene'
options:
database_name: 'ecommerce'
default:

data_provider:
service: 'trinityData'
service: 'trinity_data'
options:
index_object: true
object_class_names:
- TestClass
index_document: true
index_asset: true

output_channels:
autocomplete:
service: 'lucene'
suggestions:
service: 'lucene'
options:
restrict_search_fields:
- 'sku'
search:
service: 'lucene'
options:
max_per_page: 4

data_transformer:

document:
id:
field_transformer: 'element_id_extractor'

fields:

sku:
index_type: 'keyword'
field_transformer: 'object_getter_extractor'
field_transformer_options:
argument: 'getSku'

title:
index_type: 'text'
field_transformer: 'object_getter_extractor'
field_transformer_options:
argument: 'getTitle'

image:
index_type: 'text'
field_transformer: 'object_getter_extractor'
field_transformer_options:
argument: 'getImage'

default:
always:
index_object: true
object_class_names:
- MyTestClass
index_document: true
index_asset: false
full_dispatch:
object_limit: 20
document_limit: 10

normalizer:
service: 'trinity_localized_resource_normalizer'

index_provider:
service: 'lucene'
options:
database_name: 'default'

data_provider:
service: 'webCrawler'
options:
seed: 'http://dev-site.test/de'
valid_links:
- '@^http://dev-site.test.*@i'
user_invalid_links:
- '@^http://dev-site.test\/members.*@i'
database_name: 'my_index_database'

output_channels:
autocomplete:
service: 'lucene'
runtime_options_provider: 'my-special-runtime-options-provider'
suggestions:
service: 'lucene'
options:
restrict_search_fields:
- 'main_headline'
#options:
# restrict_search_fields:
# - 'sku'
normalizer:
service: 'lucene_document_key_value_normalizer'
#options:
# skip_fields: ['title']
search:
service: 'lucene'
options:
max_per_page: 4
normalizer:
service: 'lucene_document_key_value_normalizer'
#options:
# skip_fields: ['title']

```

data_transformer:

document:
id:
field_transformer: 'resource_document_id_extractor'
boost:
field_transformer: 'resource_meta_extractor'
field_transformer_options:
name: 'boost'

fields:

uri:
index_type: 'keyword'
field_transformer: 'resource_uri_extractor'

host:
index_type: 'keyword'
field_transformer: 'resource_host_extractor'

language:
index_type: 'keyword'
field_transformer: 'resource_language_extractor'

title:
index_type: 'text'
field_transformer: 'resource_title_extractor'

main_headline:
index_type: 'text'
field_transformer: 'resource_html_tag_content_extractor'
field_transformer_options:
tag: 'h1'
return_multiple: false

meta_description:
index_type: 'text'
field_transformer: 'resource_meta_extractor'
field_transformer_options:
name: 'description'

content:
index_type: 'text'
field_transformer: 'resource_text_extractor'
field_transformer_options:
content_start_indicator: '<!-- main-content -->'
content_end_indicator: '<!-- /main-content -->'
# content_exclude_start_indicator: ''
# content_exclude_end_indicator: ''
output_channel:
visibility:
suggestions: false
### AppBundle\DynamicSearch\IndexDefinition\Trinity\Definition.php
```php
<?php

namespace AppBundle\Ds\IndexDefinition\Trinity;

use DynamicSearchBundle\Document\Definition\DocumentDefinitionBuilderInterface;
use DynamicSearchBundle\Document\Definition\DocumentDefinitionInterface;
use DynamicSearchBundle\Normalizer\Resource\ResourceMetaInterface;

class Definition implements DocumentDefinitionBuilderInterface
{
/**
* {@inheritDoc}
*/
public function isApplicable(string $contextName, ResourceMetaInterface $resourceMeta)
{
if ($contextName !== 'default') {
return false;
}

if ($resourceMeta->getResourceCollectionType() !== 'object') {
return false;
}

return true;
}

/**
* {@inheritDoc}
*/
public function buildDefinition(DocumentDefinitionInterface $definition, array $normalizerOptions)
{
$definition
->addDocumentFieldDefinition([
'name' => 'sku',
'index_transformer' => [
'type' => 'keyword',
],
'data_transformer' => [
'type' => 'object_getter_extractor',
'configuration' => ['method' => 'getSku']
]
])
->addDocumentFieldDefinition([
'name' => 'title',
'index_transformer' => [
'type' => 'keyword',
],
'data_transformer' => [
'type' => 'object_getter_extractor',
'configuration' => ['method' => 'getTitle']
]
]);
}
}
```
2 changes: 1 addition & 1 deletion tests/_support/Helper/PimcoreBundleCore.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ private function installBundle($settings)
$bundleName = getenv('DACHCOM_BUNDLE_NAME');
$installerClass = getenv('DACHCOM_BUNDLE_INSTALLER_CLASS');

if ($installerClass === false) {
if ($installerClass === 'false') {
return;
}

Expand Down

0 comments on commit 2e49534

Please sign in to comment.