From 4ee81dc010f987497169128f891bc4139b90fea9 Mon Sep 17 00:00:00 2001 From: Lea Haensenberger Date: Mon, 6 Jan 2014 09:20:44 +0100 Subject: [PATCH 1/7] Adding support for enabling timestamps --- DependencyInjection/Configuration.php | 20 ++++++++++++++++++++ DependencyInjection/FOSElasticaExtension.php | 3 +++ 2 files changed, 23 insertions(+) diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index e9088e8..dd55ba1 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -299,6 +299,7 @@ class Configuration implements ConfigurationInterface ->append($this->getRoutingNode()) ->append($this->getParentNode()) ->append($this->getAllNode()) + ->append($this->getTimestampNode()) ->end() ; @@ -647,4 +648,23 @@ class Configuration implements ConfigurationInterface return $node; } + + /** + * Returns the array node used for "_timestamp" + */ + protected function getTimestampNode() + { + $builder = new TreeBuilder(); + $node = $builder->root('_timestamp'); + + $node + ->children() + ->scalarNode('enabled')->defaultValue(true)->end() + ->scalarNode('path')->end() + ->scalarNode('format')->end() + ->end() + ; + + return $node; + } } diff --git a/DependencyInjection/FOSElasticaExtension.php b/DependencyInjection/FOSElasticaExtension.php index 8b85629..a38b90a 100644 --- a/DependencyInjection/FOSElasticaExtension.php +++ b/DependencyInjection/FOSElasticaExtension.php @@ -246,6 +246,9 @@ class FOSElasticaExtension extends Extension if (isset($type['_all'])) { $this->indexConfigs[$indexName]['config']['mappings'][$name]['_all'] = $type['_all']; } + if (isset($type['_timestamp'])) { + $this->indexConfigs[$indexName]['config']['mappings'][$name]['_timestamp'] = $type['_timestamp']; + } if (!empty($type['dynamic_templates'])) { $this->indexConfigs[$indexName]['config']['mappings'][$name]['dynamic_templates'] = array(); foreach ($type['dynamic_templates'] as $templateName => $templateData) { From 274fc0099186980d730da1c6f7249b1b899125ad Mon Sep 17 00:00:00 2001 From: Lea Haensenberger Date: Mon, 6 Jan 2014 10:19:11 +0100 Subject: [PATCH 2/7] Add store and index options to timestamp --- DependencyInjection/Configuration.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index dd55ba1..5cdd52a 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -662,6 +662,8 @@ class Configuration implements ConfigurationInterface ->scalarNode('enabled')->defaultValue(true)->end() ->scalarNode('path')->end() ->scalarNode('format')->end() + ->scalarNode('store')->end() + ->scalarNode('index')->end() ->end() ; From 73ee750515b0f62a83c3198b2327589f3f644e98 Mon Sep 17 00:00:00 2001 From: Vermi Date: Fri, 10 Jan 2014 16:25:45 +0100 Subject: [PATCH 3/7] Removing "->performNoDeepMerging()"in indexes configuration, allowing custom Bundle defining new types in an existing index. Configuration is injected in the new Bundle using prependExtensionConfig() --- DependencyInjection/Configuration.php | 1 - 1 file changed, 1 deletion(-) diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index e9088e8..bea6cc0 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -132,7 +132,6 @@ class Configuration implements ConfigurationInterface ->arrayNode('indexes') ->useAttributeAsKey('name') ->prototype('array') - ->performNoDeepMerging() ->children() ->scalarNode('index_name')->end() ->scalarNode('client')->end() From 4287a91d506cbc92a1436d21175775ee2dea8c0d Mon Sep 17 00:00:00 2001 From: Tom A Date: Thu, 16 Jan 2014 23:05:44 -0500 Subject: [PATCH 4/7] Add similarity as a valid field mapping. http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-core-types.html#similarity --- DependencyInjection/Configuration.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index e9088e8..43f9db4 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -399,7 +399,8 @@ class Configuration implements ConfigurationInterface ->scalarNode('identifier')->defaultValue('id')->end() ->end() ->end() - ->scalarNode('format')->end(); + ->scalarNode('format')->end() + ->scalarNode('similarity')->end(); ; if (isset($nestings['fields'])) { From 1c7da33526dea333dfd2eed81bfb04de5031a261 Mon Sep 17 00:00:00 2001 From: Simon Perdrisat Date: Tue, 28 Jan 2014 11:34:54 +0100 Subject: [PATCH 5/7] [doc] repository methode has to return the query --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3006bd1..f78c97f 100644 --- a/README.md +++ b/README.md @@ -526,7 +526,7 @@ class UserRepository extends Repository public function findWithCustomQuery($searchText) { // build $query with Elastica objects - $this->find($query); + return $this->find($query); } } ``` From 076d51ac40dcbbe8fdd69223ab2d7a0377b60ced Mon Sep 17 00:00:00 2001 From: Piotr Antosik Date: Wed, 29 Jan 2014 17:50:42 +0100 Subject: [PATCH 6/7] Services classes as parameters --- Resources/config/config.xml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Resources/config/config.xml b/Resources/config/config.xml index 1fb2c1d..85cfbed 100644 --- a/Resources/config/config.xml +++ b/Resources/config/config.xml @@ -14,6 +14,10 @@ FOS\ElasticaBundle\Transformer\ElasticaToModelTransformerCollection FOS\ElasticaBundle\Provider\ProviderRegistry Symfony\Component\PropertyAccess\PropertyAccessor + FOS\ElasticaBundle\Persister\ObjectPersister + FOS\ElasticaBundle\Persister\ObjectSerializerPersister + FOS\ElasticaBundle\Transformer\ModelToElasticaAutoTransformer + FOS\ElasticaBundle\Transformer\ModelToElasticaIdentifierTransformer @@ -37,7 +41,7 @@ - + @@ -49,21 +53,21 @@ - + - + - + From 5480e037e3a005edd548d44a7bc31fb66e406db9 Mon Sep 17 00:00:00 2001 From: Laszlo Horvath Date: Thu, 30 Jan 2014 12:39:48 +0100 Subject: [PATCH 7/7] adding ttl for documents --- DependencyInjection/Configuration.php | 21 ++++++++++++++++++++ DependencyInjection/FOSElasticaExtension.php | 3 +++ 2 files changed, 24 insertions(+) diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index ca97a4d..4ed88af 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -299,6 +299,7 @@ class Configuration implements ConfigurationInterface ->append($this->getParentNode()) ->append($this->getAllNode()) ->append($this->getTimestampNode()) + ->append($this->getTtlNode()) ->end() ; @@ -669,4 +670,24 @@ class Configuration implements ConfigurationInterface return $node; } + + /** + * Returns the array node used for "_ttl" + */ + protected function getTtlNode() + { + $builder = new TreeBuilder(); + $node = $builder->root('_ttl'); + + $node + ->children() + ->scalarNode('enabled')->defaultValue(true)->end() + ->scalarNode('default')->end() + ->scalarNode('store')->end() + ->scalarNode('index')->end() + ->end() + ; + + return $node; + } } diff --git a/DependencyInjection/FOSElasticaExtension.php b/DependencyInjection/FOSElasticaExtension.php index a38b90a..52070fd 100644 --- a/DependencyInjection/FOSElasticaExtension.php +++ b/DependencyInjection/FOSElasticaExtension.php @@ -249,6 +249,9 @@ class FOSElasticaExtension extends Extension if (isset($type['_timestamp'])) { $this->indexConfigs[$indexName]['config']['mappings'][$name]['_timestamp'] = $type['_timestamp']; } + if (isset($type['_ttl'])) { + $this->indexConfigs[$indexName]['config']['mappings'][$name]['_ttl'] = $type['_ttl']; + } if (!empty($type['dynamic_templates'])) { $this->indexConfigs[$indexName]['config']['mappings'][$name]['dynamic_templates'] = array(); foreach ($type['dynamic_templates'] as $templateName => $templateData) {