Date format for Riak Search and its JSON output

Sean Cribbs sean at basho.com
Thu Nov 4 18:02:05 EDT 2010


You know you can also do this:

client.http.send(:curl).verbose = true

Sean Cribbs <sean at basho.com>
Developer Advocate
Basho Technologies, Inc.
http://basho.com/

On Nov 4, 2010, at 8:15 PM, Nicolas Fouché wrote:

> I monkey-patched Riak::Client::CurbBackend to get useful logs
> https://gist.github.com/662986
> 
> Best,
> Nicolas
> 
> On Thu, Nov 4, 2010 at 7:42 PM, Rusty Klophaus <rusty at basho.com> wrote:
>> Hi Nicolas,
>> Thank you for the excellent description of the problem. There are currently
>> issues/bugs around date support in Riak Search, looks like you found
>> another. I'd recommend treating dates as strings for now. The issue you
>> described is now tracked here: https://issues.basho.com/show_bug.cgi?id=864
>> Best,
>> Rusty
>> 
>> On Thu, Nov 4, 2010 at 9:17 AM, Nicolas Fouché <nicolas at silentale.com>
>> wrote:
>>> 
>>> Hi,
>>> 
>>> I can't find the right format for dates in Riak Search, for fields
>>> suffixed with "_dt". I tried rfc822 (e.g. "Thu, 04 Nov 2010 16:02:59
>>> -0000"), and xmlschema/iso8601 (e.g. "2010-11-04T16:07:43Z"), but I
>>> get an {unhandled_type,date} error when requesting my data in JSON. No
>>> problem with XML.
>>> 
>>> Here are the HTTP queries to reproduce the error:
>>> 
>>> # Get the bucket props
>>> 
>>> GET http://127.0.0.1:8098/riak/models?keys=false
>>>        {"Accept"=>"multipart/mixed, application/json;q=0.7, */*;q=0.5",
>>> "X-Riak-ClientId"=>"A1Q9KQ=="}
>>> 
>>> # Set the pre-commit search hook
>>> 
>>> PUT http://127.0.0.1:8098/riak/models
>>>        {"Accept"=>"multipart/mixed, application/json;q=0.7, */*;q=0.5",
>>> "X-Riak-ClientId"=>"A1Q9KQ==", "Content-Type"=>"application/json"}
>>> 
>>>  {"props":{"precommit":[{"mod":"riak_search_kv_hook","fun":"precommit"}]}}
>>> 
>>> # Check if there are any keys to delete
>>> 
>>> GET http://127.0.0.1:8098/riak/models?props=false&keys=true
>>>        {"Accept"=>"multipart/mixed, application/json;q=0.7, */*;q=0.5",
>>> "X-Riak-ClientId"=>"A1Q9KQ=="}
>>> 
>>> # Post a JSON document with a date in rfc822 (day-of-week, DD
>>> month-name CCYY hh:mm:ss zone)
>>> 
>>> POST http://127.0.0.1:8098/riak/models?returnbody=true
>>>        {"Accept"=>"multipart/mixed, application/json;q=0.7, */*;q=0.5",
>>> "X-Riak-ClientId"=>"A1Q9KQ==", "Content-Type"=>"application/json"}
>>>        {"time_dt":"Thu, 04 Nov 2010 16:02:59 -0000","value":"a value like
>>> any other value","_type":"Model"}
>>> 
>>> # Search for the object and request a JSON ouput => KO
>>> 
>>> GET http://127.0.0.1:8098/solr/models/select?q=value%3Aother&wt=json
>>>        {"Accept"=>"multipart/mixed, application/json;q=0.7, */*;q=0.5",
>>> "X-Riak-ClientId"=>"A1Q9KQ=="}
>>> 
>>>  <html><head><title>500 Internal Server
>>> Error</title></head><body><h1>Internal Server Error</h1>The server
>>> encountered an error while processing this
>>> request:<br><pre>{error,{throw,{unhandled_type,date},
>>>                [{riak_solr_output,convert_type,2},
>>>                 {riak_indexed_doc,'-to_mochijson2/2-lc$^0/1-0-',2},
>>>                 {riak_indexed_doc,'-to_mochijson2/2-lc$^0/1-0-',2},
>>>                 {riak_indexed_doc,to_mochijson2,2},
>>>                 {riak_solr_output,'-json_response/7-lc$^0/1-0-',2},
>>>                 {riak_solr_output,json_response,7},
>>>                 {riak_solr_searcher_wm,to_json,2},
>>> 
>>> 
>>> {webmachine_resource,resource_call,3}]}}</pre><P><HR><ADDRESS>mochiweb+webmachine
>>> web server</ADDRESS></body></html>[nfo@
>>> 17:13:46]~/Code/tests/riak/search
>>> 
>>> # Search for the object and request a XML ouput => OK
>>> 
>>> GET http://127.0.0.1:8098/solr/models/select?q=value%3Aother&wt=xml
>>> 
>>>  <?xml version="1.0" encoding="UTF-8"?>
>>>  <response>
>>>    <lst name="responseHeader">
>>>      <int name="status">0</int>
>>>      <int name="QTime">1</int>
>>>      <lst name="params">
>>>        <str name="indent">on</str>
>>>        <str name="start">0</str>
>>>        <str name="q">value:other</str>
>>>        <str name="q.op">or</str>
>>>        <str name="df">value</str>
>>>        <str name="wt">standard</str>
>>>        <str name="version">1.1</str>
>>>        <str name="rows">2</str>
>>>      </lst>
>>>    </lst>
>>>    <result name="response" numFound="1" start="0" maxScore="0.500000">
>>>      <doc>
>>>        <str name="id">67rGKh9XJSZBsPeet0LpdCzi1hz
>>>        </str>
>>>        <str name="_type">Model
>>>        </str>
>>>        <date name="time_dt">Thu, 04 Nov 2010 16:02:59 -0000
>>>        </date>
>>>        <str name="value">a value like any other value
>>>        </str>
>>>      </doc>
>>>    </result>
>>>  </response>
>>> 
>>> -- Nicolas
>>> 
>>> _______________________________________________
>>> riak-users mailing list
>>> riak-users at lists.basho.com
>>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>> 
>> 
> 
> _______________________________________________
> riak-users mailing list
> riak-users at lists.basho.com
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com





More information about the riak-users mailing list