Skip to content

Commit

Permalink
Merge pull request Philippus#88 from Synata/master
Browse files Browse the repository at this point in the history
Enable Routing in Mappings
  • Loading branch information
sksamuel committed Feb 8, 2014
2 parents 4783796 + 862f299 commit a5558b0
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions src/main/scala/com/sksamuel/elastic4s/mapping/mappings.scala
Expand Up @@ -26,6 +26,7 @@ class MappingDefinition(val `type`: String) {
var _boostValue: Double = 0
var _dynamic: DynamicMapping = Dynamic
var _meta: Map[String, Any] = Map.empty
var _routing: Option[RoutingDefinition] = None

def analyzer(analyzer: String): MappingDefinition = {
_analyzer = Option(analyzer)
Expand Down Expand Up @@ -55,6 +56,10 @@ class MappingDefinition(val `type`: String) {
this._meta = map
this
}
def routing(required: Boolean, path: Option[String] = None): MappingDefinition = {
this._routing = Some(RoutingDefinition(required, path))
this
}
def source(source: Boolean): MappingDefinition = {
this._source = source
this
Expand Down Expand Up @@ -114,6 +119,14 @@ class MappingDefinition(val `type`: String) {
source.endObject()
}

if(_routing.isDefined) {
source.startObject("_routing").field("required", _routing.get.required)
if(_routing.get.path.isDefined) {
source.field("path", _routing.get.path.get)
}
source.endObject()
}

source.endObject() // end mapping name
}
}
Expand Down Expand Up @@ -502,3 +515,8 @@ final class MultiFieldDefinition(name: String)
source.endObject()
}
}

case class RoutingDefinition (
required: Boolean,
path: Option[String]
)

0 comments on commit a5558b0

Please sign in to comment.