function it_build_parameters_for_similar_recipes(SlugGenerator $slugGenerator) { $criteria = new Criteria(0, false); $criteria->similarTo(new Name("John Collins")); $slugGenerator->generateFrom("John Collins")->willReturn('john-collins'); $this->createParameters($criteria)->shouldReturn(['index' => ElasticSearch::INDEX, 'type' => 'recipe', 'body' => ['from' => 0, 'size' => 10, 'query' => ['filtered' => ['query' => ['more_like_this' => ['fields' => ["steps.name", "description.taste"], 'ids' => ["john-collins"], 'min_term_freq' => 1, 'max_query_terms' => 25]]]]]]); }
public function similarRecipesAction($slug, $size) { $recipe = $this->get('my_drinks.recipes')->findBySlug($slug); if (is_null($recipe)) { throw new NotFoundHttpException(); } $criteria = new Criteria(); $criteria->similarTo($recipe->getName()); $criteria->changeSize((int) $size); $results = $this->get('my_drinks.search_engine')->search($criteria); return $this->render(':recipe:similarRecipes.html.twig', ['recipe' => $recipe, 'results' => $results]); }