private def tagQueryParams()

in src/main/scala/datastore/ElasticsearchRepo.scala [187:214]


  private def tagQueryParams(maybeTagId:Option[String], maybeSection:Option[String],
                             tagType:Option[String], maybeCategory:Option[String],
                             maybeReferences: Option[String], queryString:Option[String], fuzziness:Option[String]):Seq[Query] = {
    Seq(
      queryString.map(qs=>{
        if(fuzziness.getOrElse("AUTO") != "OFF") {
          //Why DisMax here? Because we want to include exact-matches as well, if they are relevant. E.g. FuzzyQuery on "politics" returns no results!
          DisMaxQuery(Seq(
            FuzzyQuery("webTitle", qs, fuzziness),
            MatchQuery("webTitle", qs)
          ))
        } else {
          MatchQuery("webTitle", qs)
        }
      }),
      maybeTagId.map(MatchQuery("id", _)),
      maybeSection.map(MatchQuery("sectionId", _)),
      tagType.map({
        case "podcast" =>
          ExistsQuery("podcast")
        case tp: String =>
          MatchQuery("type", tp)
      }),
      maybeSection.map(s=>termQuery("section",s)),
      maybeCategory.map(cat=>termQuery("tagCategories", cat)),
      maybeReferences.map(ref=>termQuery("references", ref))  //this is an object field - check how terming works!!
    ).collect({ case Some(param) => param })
  }