DateRangeField - Solr Wiki



DateRangeField - Solr Wiki

I would like to share my resolution here for anyone else struggling with this. My requirement was to get all restaurants open now. The caveat was that each restaurant could have multiple opening hours in a single day. And opening hours for each day could vary. Added date_range field into schema.xml: <field name="openingHours" type="date_range" indexed="true" stored="true" multiValued="true" /> <fieldType name="date_range" class="solr.DateRangeField"/> Indexed each opening hour for the next week as dates, NOTE! convert your time zones to UTC before indexing openingHours": [

  • "[2016-02-01T03:00Z TO 2016-02-01T15:00Z]", "[2016-02-02T03:00Z TO 2016-02-02T15:00Z]", "[2016-02-03T03:00Z TO 2016-02-03T15:00Z]", "[2016-02-04T03:00Z TO 2016-02-04T15:00Z]", "[2016-02-07T03:00Z TO 2016-02-07T15:00Z]", "[2016-02-05T03:00Z TO 2016-02-05T16:00Z]", "[2016-02-06T03:00Z TO 2016-02-06T16:00Z]"
  • ],

Now the fun part starts, to get opening hour ranges, which are not dependent on the actual opening hours of any restaurant I passed in the following: facet.range=openingHours&f.openingHours.facet.range.start=NOW&f.openingHours.facet.range.end=NOW%2B6HOUR&f.openingHours.facet.range.gap=%2B1HOUR facet.range : specifies your facet on which you want to range one f.openingHours.facet.range.start : the time from when the ranges should start - i specified now as i would want to get all restaurants open from now. f.openingHours.facet.range.end : the time when the range should stop, let say i want to range between all restaurants open from now till tonights evening f.openingHours.facet.range.gap : this specifies the gaps in the range (start to end) so if your range is for 12 hours, you can have a gap of 1 Hour, so you will get 12 points in time to range on Now to actually query on these ranges you need to pass the following to fq parameter {!field f=openingHours op=Contains}[2016-02-02T14:50 TO 2016-02-02T15:00] what the above seas is that you want to query your openingHours to see whether any restaurant is open from 2016-02-02T14:50 TO 2016-02-02T15:00


Read full article from DateRangeField - Solr Wiki


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts