All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sksamuel.elastic4s.handlers.searches.queries.RankFeatureQueryBuilderFn.scala Maven / Gradle / Ivy

package com.sksamuel.elastic4s.handlers.searches.queries

import com.sksamuel.elastic4s.json.{XContentBuilder, XContentFactory}
import com.sksamuel.elastic4s.requests.searches.queries.RankFeatureQuery

object RankFeatureQueryBuilderFn {
  def apply(q: RankFeatureQuery): XContentBuilder = {
    val builder = XContentFactory.jsonBuilder()
    builder.startObject("rank_feature")
    builder.field("field", q.field)
    q.boost.foreach(builder.field("boost", _))
    q.saturation.foreach { s =>
      builder.startObject("saturation")
      s.pivot.foreach(builder.field("pivot", _))
      builder.endObject()
    }
    q.log.foreach { l =>
      builder.startObject("log")
      builder.field("scaling_factor", l.scalingFactor)
      builder.endObject()
    }
    q.sigmoid.foreach { s =>
      builder.startObject("sigmoid")
      builder.field("pivot", s.pivot)
      builder.field("exponent", s.exponent)
      builder.endObject()
    }
    q.linear.foreach { _ =>
      builder.rawField("linear", "{}")
    }
    builder.endObject()
    builder
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy