Пример #1
0
 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]]]]]]);
 }
Пример #2
0
 /**
  * @param Criteria $criteria
  */
 private function addSimilarRecipe(Criteria $criteria)
 {
     if ($criteria->lookForSimilarRecipes()) {
         $this->parameters['body']['query']['filtered']['query'] = ['more_like_this' => ['fields' => ["steps.name", "description.taste"], 'ids' => [$this->slugGenerator->generateFrom((string) $criteria->getSimilarToRecipeName())], 'min_term_freq' => 1, 'max_query_terms' => 25]];
     }
 }
Пример #3
0
 /**
  * @param Name $name
  * @return string
  */
 private function generateFileName(Name $name)
 {
     return $this->generateFileNameFromSlug($this->slugGenerator->generateFrom((string) $name));
 }
Пример #4
0
 /**
  * @param Recipe $recipe
  */
 public function removeRecipeFromIndex(Recipe $recipe)
 {
     $params = ['index' => ElasticSearch::INDEX, 'type' => 'recipe', 'id' => $this->slugGenerator->generateFrom((string) $recipe->getName())];
     $this->client->delete($params);
     $this->client->indices()->refresh();
 }