git.iko.soy/typeable/bloodhound
on master help sign in
Merge pull request #203 from andrewthad/total_fields_limit

added maximum mapping size

commit8192af86195a7eac9eddfddf77ee7796e26dd46c authorChris Allen <cma@bitemyapp.com> dateWed 30 Aug 2017, 17:21 (9 years ago) parentac096cef512950
2 files changed+17
src/Database/V5/Bloodhound/Types.hs+4 tests/V5/tests.hs+13
src/Database/V5/Bloodhound/Types.hs+4
@@ -582,6 +582,7 @@ data UpdatableIndexSetting = NumberOfReplicas ReplicaCount
582582 | IndexCompoundFormat CompoundFormat
583583 | IndexCompoundOnFlush Bool
584584 | WarmerEnabled Bool
585+ | MappingTotalFieldsLimit Int
585586 deriving (Eq, Show, Generic, Typeable)
586587
587588data AllocationPolicy = AllocAll
@@ -2988,6 +2989,7 @@ instance ToJSON UpdatableIndexSetting where
29882989 toJSON (BlocksRead x) = oPath ("blocks" :| ["read"]) x
29892990 toJSON (BlocksWrite x) = oPath ("blocks" :| ["write"]) x
29902991 toJSON (BlocksMetaData x) = oPath ("blocks" :| ["metadata"]) x
2992+ toJSON (MappingTotalFieldsLimit x) = oPath ("index" :| ["mapping","total_fields","limit"]) x
29912993
29922994instance FromJSON UpdatableIndexSetting where
29932995 parseJSON = withObject "UpdatableIndexSetting" parse
@@ -3019,6 +3021,7 @@ instance FromJSON UpdatableIndexSetting where
30193021 <|> blocksRead `taggedAt` ["blocks", "read"]
30203022 <|> blocksWrite `taggedAt` ["blocks", "write"]
30213023 <|> blocksMetaData `taggedAt` ["blocks", "metadata"]
3024+ <|> mappingTotalFieldsLimit `taggedAt` ["index", "mapping", "total_fields", "limit"]
30223025 where taggedAt f ks = taggedAt' f (Object o) ks
30233026 taggedAt' f v [] = f =<< (parseJSON v <|> (parseJSON (unStringlyTypeJSON v)))
30243027 taggedAt' f v (k:ks) = withObject "Object" (\o -> do v' <- o .: k
@@ -3051,6 +3054,7 @@ instance FromJSON UpdatableIndexSetting where
30513054 blocksRead = pure . BlocksRead
30523055 blocksWrite = pure . BlocksWrite
30533056 blocksMetaData = pure . BlocksMetaData
3057+ mappingTotalFieldsLimit = pure . MappingTotalFieldsLimit
30543058
30553059instance FromJSON IndexSettingsSummary where
30563060 parseJSON = withObject "IndexSettingsSummary" parse
tests/V5/tests.hs+13
@@ -1609,6 +1609,19 @@ main = hspec $ do
16091609 (IndexSettings (ShardCount 1) (ReplicaCount 0))
16101610 (NE.toList updates))
16111611
1612+ it "allows total fields to be set" $ when' (atleast es50) $ withTestEnv $ do
1613+ _ <- deleteExampleIndex
1614+ _ <- createExampleIndex
1615+ let updates = MappingTotalFieldsLimit 2500 :| []
1616+ updateResp <- updateIndexSettings updates testIndex
1617+ liftIO $ validateStatus updateResp 200
1618+ getResp <- getIndexSettings testIndex
1619+ liftIO $
1620+ getResp `shouldBe` Right (IndexSettingsSummary
1621+ testIndex
1622+ (IndexSettings (ShardCount 1) (ReplicaCount 0))
1623+ (NE.toList updates))
1624+
16121625 describe "Index Optimization" $ do
16131626 it "returns a successful response upon completion" $ withTestEnv $ do
16141627 _ <- createExampleIndex