on master help sign in
Update deprecated mapping specification
f418eb3Michael Xavier
.travis.yml+1−1
@@ -20,8 +20,8 @@ matrix:
20 - env: ARGS="--resolver=lts-8" ESVERSION=1.5.2 ESURL=https://download.elastic.co/elasticsearch/elasticsearch ESTESTARGS="--es-version 1"
20 - env: ARGS="--resolver=lts-8" ESVERSION=1.5.2 ESURL=https://download.elastic.co/elasticsearch/elasticsearch ESTESTARGS="--es-version 1"
21 - env: ARGS="--resolver=lts-9" ESVERSION=1.5.2 ESURL=https://download.elastic.co/elasticsearch/elasticsearch ESTESTARGS="--es-version 1"
21 - env: ARGS="--resolver=lts-9" ESVERSION=1.5.2 ESURL=https://download.elastic.co/elasticsearch/elasticsearch ESTESTARGS="--es-version 1"
22 - env: ARGS="--resolver=lts-10" ESVERSION=1.5.2 ESURL=https://download.elastic.co/elasticsearch/elasticsearch ESTESTARGS="--es-version 1"
22 - env: ARGS="--resolver=lts-10" ESVERSION=1.5.2 ESURL=https://download.elastic.co/elasticsearch/elasticsearch ESTESTARGS="--es-version 1"
23− - env: ARGS="--resolver=nightly" ESVERSION=1.5.2 ESURL=https://download.elastic.co/elasticsearch/elasticsearch ESTESTARGS="--es-version 1"
24 - env: ARGS="--resolver=nightly" ESVERSION=5.5.0 ESURL=https://artifacts.elastic.co/downloads/elasticsearch ESTESTARGS="--es-version 5" ES_JAVA_OPTS="-Xms500m -Xmx750m" JAVA_HOME=/usr/lib/jvm/java-8-oracle
23 - env: ARGS="--resolver=nightly" ESVERSION=5.5.0 ESURL=https://artifacts.elastic.co/downloads/elasticsearch ESTESTARGS="--es-version 5" ES_JAVA_OPTS="-Xms500m -Xmx750m" JAVA_HOME=/usr/lib/jvm/java-8-oracle
24+ - env: ARGS="--resolver=nightly" ESVERSION=6.2.2 ESURL=https://artifacts.elastic.co/downloads/elasticsearch ESTESTARGS="--es-version 5" ES_JAVA_OPTS="-Xms500m -Xmx750m" JAVA_HOME=/usr/lib/jvm/java-8-oracle
25
25
26before_install:
26before_install:
27# Download and unpack the stack executable
27# Download and unpack the stack executable
katip-elasticsearch/src/Katip/Scribes/ElasticSearch/Internal.hs+27−14
@@ -320,24 +320,27 @@ mkEsScribe cfg@EsScribeCfg {..} env ix mapping sev verb = do
320baseMapping :: ESVersion v => proxy v -> MappingName v -> Value
320baseMapping :: ESVersion v => proxy v -> MappingName v -> Value
321baseMapping prx mn =
321baseMapping prx mn =
322 object [ fromMappingName prx mn .= object ["properties" .= object prs] ]
322 object [ fromMappingName prx mn .= object ["properties" .= object prs] ]
323− where prs = [ str "thread"
323+ where prs = [ unanalyzedString "thread"
324− , str "sev"
324+ , unanalyzedString "sev"
325− , str "pid"
325+ , unanalyzedString "pid"
326− , str "ns"
326+ -- ns is frequently fulltext searched
327− , str "msg"
327+ , analyzedString "ns"
328+ -- we want message to be fulltext searchable
329+ , analyzedString "msg"
328 , "loc" .= locType
330 , "loc" .= locType
329− , str "host"
331+ , unanalyzedString "host"
330− , str "env"
332+ , unanalyzedString "env"
331 , "at" .= dateType
333 , "at" .= dateType
332− , str "app"
334+ , unanalyzedString "app"
333 ]
335 ]
334− str k = k .= object ["type" .= String "string"]
336+ unanalyzedString k = k .= object ["type" .= String (unanalyzedStringType prx)]
337+ analyzedString k = k .= object ["type" .= String (analyzedStringType prx)]
335 locType = object ["properties" .= object locPairs]
338 locType = object ["properties" .= object locPairs]
336− locPairs = [ str "loc_pkg"
339+ locPairs = [ unanalyzedString "loc_pkg"
337− , str "loc_mod"
340+ , unanalyzedString "loc_mod"
338− , str "loc_ln"
341+ , unanalyzedString "loc_ln"
339− , str "loc_fn"
342+ , unanalyzedString "loc_fn"
340− , str "loc_col"
343+ , unanalyzedString "loc_col"
341 ]
344 ]
342 dateType = object [ "format" .= esDateFormat
345 dateType = object [ "format" .= esDateFormat
343 , "type" .= String "date"
346 , "type" .= String "date"
@@ -459,6 +462,12 @@ class ESVersion v where
459 putTemplate :: proxy v -> IndexTemplate v -> TemplateName v -> BH v IO (Response ByteString)
462 putTemplate :: proxy v -> IndexTemplate v -> TemplateName v -> BH v IO (Response ByteString)
460 putMapping :: (ToJSON a) => proxy v -> IndexName v -> MappingName v -> a -> BH v IO (Response ByteString)
463 putMapping :: (ToJSON a) => proxy v -> IndexName v -> MappingName v -> a -> BH v IO (Response ByteString)
461
464
465+ -- In ES 5 and beyond, "string" was deprecated in favor of text for
466+ -- fulltext and keyword for unanalyzed tokens
467+ unanalyzedStringType :: proxy v -> Text
468+ analyzedStringType :: proxy v -> Text
469+
470+
462
471
463data ESV1 = ESV1
472data ESV1 = ESV1
464
473
@@ -488,6 +497,8 @@ instance ESVersion ESV1 where
488 createIndex _ = V1.createIndex
497 createIndex _ = V1.createIndex
489 putTemplate _ = V1.putTemplate
498 putTemplate _ = V1.putTemplate
490 putMapping _ = V1.putMapping
499 putMapping _ = V1.putMapping
500+ unanalyzedStringType _ = "string"
501+ analyzedStringType _ = "string"
491
502
492
503
493data ESV5 = ESV5
504data ESV5 = ESV5
@@ -518,3 +529,5 @@ instance ESVersion ESV5 where
518 createIndex _ = V5.createIndex
529 createIndex _ = V5.createIndex
519 putTemplate _ = V5.putTemplate
530 putTemplate _ = V5.putTemplate
520 putMapping _ = V5.putMapping
531 putMapping _ = V5.putMapping
532+ unanalyzedStringType _ = "keyword"
533+ analyzedStringType _ = "text"