Skip to content

Instantly share code, notes, and snippets.

@chrissearle
Created June 18, 2013 21:12
Show Gist options
  • Save chrissearle/5809409 to your computer and use it in GitHub Desktop.
Save chrissearle/5809409 to your computer and use it in GitHub Desktop.
JZ app search predicate
Here we've got the following filters running.
session state must be approved // don't show non-approved sessions
AND
session conference must be the selected conference // example shows 2012
AND
free text search on kev // searches both title and speaker name
AND
level is set to beginner // can have several if we want - multiple levels are OR'd together
AND
two keywords are selected // multiple keywords are OR'd together
AND
only sessions star marked are listed
(state == "approved" AND conference == <NSManagedObject: 0x997e240> (entity: Conference; id: 0x997b210 <x-coredata://940F4397-3008-4FD1-9760-C7A5BECB41D0/Conference/p6> ; data: {
conferenceKeywords = (
"0x81379c0 <x-coredata://940F4397-3008-4FD1-9760-C7A5BECB41D0/ConferenceKeyword/p25>",
"0x8132e10 <x-coredata://940F4397-3008-4FD1-9760-C7A5BECB41D0/ConferenceKeyword/p21>",
"0x8135c60 <x-coredata://940F4397-3008-4FD1-9760-C7A5BECB41D0/ConferenceKeyword/p16>",
"0x81380d0 <x-coredata://940F4397-3008-4FD1-9760-C7A5BECB41D0/ConferenceKeyword/p22>",
"0x8133b70 <x-coredata://940F4397-3008-4FD1-9760-C7A5BECB41D0/ConferenceKeyword/p27>",
"0x8135810 <x-coredata://940F4397-3008-4FD1-9760-C7A5BECB41D0/ConferenceKeyword/p19>",
"0x81348a0 <x-coredata://940F4397-3008-4FD1-9760-C7A5BECB41D0/ConferenceKeyword/p15>",
"0x8132b50 <x-coredata://940F4397-3008-4FD1-9760-C7A5BECB41D0/ConferenceKeyword/p26>",
"0x8133350 <x-coredata://940F4397-3008-4FD1-9760-C7A5BECB41D0/ConferenceKeyword/p18>",
"0x8133740 <x-coredata://940F4397-3008-4FD1-9760-C7A5BECB41D0/ConferenceKeyword/p23>",
"(...and 4 more...)"
);
conferenceLevels = (
"0x813d370 <x-coredata://940F4397-3008-4FD1-9760-C7A5BECB41D0/ConferenceLevel/p7>",
"0x8131620 <x-coredata://940F4397-3008-4FD1-9760-C7A5BECB41D0/ConferenceLevel/p8>",
"0x8132050 <x-coredata://940F4397-3008-4FD1-9760-C7A5BECB41D0/ConferenceLevel/p6>",
"0x81343b0 <x-coredata://940F4397-3008-4FD1-9760-C7A5BECB41D0/ConferenceLevel/p5>"
);
end = nil;
href = "http://test.java.no/ems-redux/server/events/4c18f45a-054a-4699-a2bc-6a59a9dd8382";
name = "JavaZone 2012";
roomCollection = "http://test.java.no/ems-redux/server/events/4c18f45a-054a-4699-a2bc-6a59a9dd8382/rooms";
rooms = "<relationship fault: 0x99a2ae0 'rooms'>";
sessionCollection = "http://test.java.no/ems-redux/server/events/4c18f45a-054a-4699-a2bc-6a59a9dd8382/sessions";
sessions = "<relationship fault: 0x9985f80 'sessions'>";
slotCollection = "http://test.java.no/ems-redux/server/events/4c18f45a-054a-4699-a2bc-6a59a9dd8382/slots";
slots = "<relationship fault: 0x99a76d0 'slots'>";
slug = "javazone_2012";
start = nil;
venue = "Oslo Spektrum";
})) AND (title CONTAINS[cd] "kev" OR ANY speakers.name CONTAINS[cd] "kev") AND level IN {"beginner"} AND (ANY keywords.name CONTAINS[cd] "Continuous Delivery" OR ANY keywords.name CONTAINS[cd] "Alternative Languages") AND favourite == 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment