git.iko.soy/typeable/bloodhound
on master help sign in
added TermFilter
commitf18d499535c619fdc9f571bf3fa9046c34d96dc1 authorChris Allen <cma@bitemyapp.com> dateTue 1 Jul 2014, 10:01 (12 years ago) parent57a7ee3
3 files changed+13
Database/Bloodhound/Types.hs+1 Database/Bloodhound/Types/Instances.hs+5 tests/tests.hs+7
Database/Bloodhound/Types.hs+1
@@ -801,6 +801,7 @@ data Filter = AndFilter [Filter] Cache
801801 | PrefixFilter FieldName PrefixValue Cache
802802 | RangeFilter FieldName (Either HalfRange Range) RangeExecution Cache
803803 | RegexpFilter FieldName Regexp RegexpFlags CacheName Cache CacheKey
804+ | TermFilter Term Cache
804805 deriving (Eq, Show)
805806
806807data ZeroTermsQuery = ZeroTermsNone
Database/Bloodhound/Types/Instances.hs+5
@@ -41,6 +41,11 @@ instance ToJSON Filter where
4141 toJSON (IdentityFilter) =
4242 object ["match_all" .= object []]
4343
44+ toJSON (TermFilter (Term termFilterField termFilterValue) cache) =
45+ object ["term" .= object base]
46+ where base = [termFilterField .= termFilterValue,
47+ "_cache" .= cache]
48+
4449 toJSON (ExistsFilter (FieldName fieldName)) =
4550 object ["exists" .= object
4651 ["field" .= fieldName]]
tests/tests.hs+7
@@ -252,6 +252,13 @@ main = hspec $ do
252252 myTweet <- searchTweet search
253253 myTweet `shouldBe` Right exampleTweet
254254
255+ it "returns document for term filter" $ do
256+ _ <- insertData
257+ let termFilter = TermFilter (Term "user" "bitemyapp") False
258+ let search = mkSearch Nothing (Just termFilter)
259+ myTweet <- searchTweet search
260+ myTweet `shouldBe` Right exampleTweet
261+
255262 it "returns document for existential filter" $ do
256263 _ <- insertData
257264 let search = mkSearch Nothing (Just (ExistsFilter (FieldName "user")))