So a date with this format should work.

David

> Le 12 déc. 2014 à 21:35, Bruno Kamiche <[email protected]> a écrit :
> 
> This is my mapping
> 
>                     'fecha' => [
>                         'type' => 'date',
>                         'format' => 'YYYY-mm-dd HH:mm:ss'
>                     ]
> 
> 
>> On Friday, December 12, 2014 3:33:22 PM UTC-5, David Pilato wrote:
>> Text should be fine. But are you sure you defined the field as date in 
>> mapping?
>> With the right format?
>> 
>> David
>> 
>>> Le 12 déc. 2014 à 21:15, Bruno Kamiche <[email protected]> a écrit :
>>> 
>>> I think I figured it out, I needed an extra set of curly braces
>>> 
>>>                         "filter" : {
>>>                                 "bool" :  {
>>>                                         "must" : [
>>>                                                 {
>>>                                                         "range" : {
>>>                                                                 "fecha" : {
>>>                                                                         
>>> "gte" : 1325394000,
>>>                                                                         
>>> "lte" : 1356930000
>>>                                                                 }
>>>                                                         }
>>>                                                 },
>>>                                                 {
>>>                                                         "term" : { 
>>> "aq_industryid" : 1 }
>>>                                                 },
>>>                                                 {
>>>                                                         "term" : { 
>>> "aq_clientid" : 1 }
>>>                                                 },
>>>                                                 {
>>>                                                         "term" : { "ntipo" 
>>> : [5] }
>>>                                                 }
>>>                                         ]
>>>                                 }
>>>                         }
>>> 
>>> Now the query runs, but it does not yield the expected results, maybe you 
>>> can help me with this
>>> 
>>> When I index the data, the field "fecha" is declared as a date field, with 
>>> format "YYYY-mm-dd HH:mm:ss", when I query elastic search I see the correct 
>>> dates in the retrieved information, now I need to filter upon this data 
>>> with a range of dates, how shall I express the range values, as text or as 
>>> a unixtime ?
>>> 
>>> I've tried both and although theres data that should comply elastic does 
>>> not return records.
>>> 
>>> 
>>> 
>>>> On Friday, December 12, 2014 3:08:51 PM UTC-5, Bruno Kamiche wrote:
>>>> I changed the filter to this:
>>>> 
>>>>                         "filter" : {
>>>>                                 "bool" :  {
>>>>                                         "must" : [
>>>>                                                 "range" : {
>>>>                                                         "fecha" : {
>>>>                                                                 "gte" : 
>>>> "1325394000",
>>>>                                                                 "lte" : 
>>>> "1356930000"
>>>>                                                         }
>>>>                                                 },
>>>>                                                 {
>>>>                                                         "term" : { 
>>>> "aq_industryid" : 1 }
>>>>                                                 },
>>>>                                                 {
>>>>                                                         "term" : { 
>>>> "aq_clientid" : 1 }
>>>>                                                 },
>>>>                                                 {
>>>>                                                         "term" : { "ntipo" 
>>>> : [5] }
>>>>                                                 }
>>>>                                         ]
>>>>                                 }
>>>>                         }
>>>> 
>>>> But it keeps the error:
>>>> 
>>>> PHP Fatal error:  Uncaught exception 
>>>> 'Guzzle\Http\Exception\ClientErrorResponseException' with message 'Client 
>>>> error response
>>>> [status code] 400
>>>> [reason phrase] Bad Request
>>>> [url] http://localhost:9200/quantico_index/quantico_type/_search' in 
>>>> /root/vendor/guzzle/http/Guzzle/Http/Exception/BadResponseException.php:43
>>>> Stack trace:
>>>> #0 /root/vendor/guzzle/http/Guzzle/Http/Message/Request.php(145): 
>>>> Guzzle\Http\Exception\BadResponseException::factory(Object(Guzzle\Http\Message\EntityEnclosingRequest),
>>>>  Object(Guzzle\Http\Message\Response))
>>>> #1 [internal function]: 
>>>> Guzzle\Http\Message\Request::onRequestError(Object(Guzzle\Common\Event), 
>>>> 'request.error', Object(Symfony\Component\EventDispatcher\EventDispatcher))
>>>> #2 
>>>> /root/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcher.php(164):
>>>>  call_user_func(Array, Object(Guzzle\Common\Event), 'request.error', 
>>>> Object(Symfony\Component\EventDispatcher\EventDispatcher))
>>>> #3 
>>>> /root/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcher.php(53):
>>>>  Symf in 
>>>> /root/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/GuzzleConnection.php
>>>>  on line 266
>>>> 
>>>> 
>>>>> On Friday, December 12, 2014 3:06:47 PM UTC-5, David Pilato wrote:
>>>>> Oh I see. Filter accepts only one filter. You should put your range 
>>>>> inside the Must array.
>>>>> 
>>>>> David
>>>>> 
>>>>>> Le 12 déc. 2014 à 21:04, Bruno Kamiche <[email protected]> a écrit :
>>>>>> 
>>>>>> Hello, I'm testing elastic search and I need to apply different filters, 
>>>>>> when I include the "range" filter I get an error and the query is not 
>>>>>> executed, here's the json:
>>>>>> 
>>>>>> $json = '{
>>>>>>         "size" : 10,
>>>>>>         "from" : 0,
>>>>>>         "sort" : [
>>>>>>                 { "_timestamp" : { "order" : "desc" } },
>>>>>>                 { "_score" : { "order" : "desc" } }
>>>>>>         ],
>>>>>>         "query" : {
>>>>>>                 "filtered" : {
>>>>>>                         "query" : {
>>>>>>                                 "query_string" : {
>>>>>>                                         "fields" : ["mytextfield"],
>>>>>>                                         "query" : "my query string",
>>>>>>                                         "default_operator" : "AND"
>>>>>>                                 }
>>>>>>                         },
>>>>>>                         "filter" : {
>>>>>>                                 "range" : {
>>>>>>                                         "datefields" : {
>>>>>>                                                 "gte" : "1325394000",
>>>>>>                                                 "lte" : "1356930000"
>>>>>>                                         }
>>>>>>                                 },
>>>>>>                                 "bool" :  {
>>>>>>                                         "must" : [
>>>>>>                                                 {
>>>>>>                                                         "term" : { 
>>>>>> "aq_industryid" : 1 }
>>>>>>                                                 },
>>>>>>                                                 {
>>>>>>                                                         "term" : { 
>>>>>> "aq_clientid" : 1 }
>>>>>>                                                 },
>>>>>>                                                 {
>>>>>>                                                         "term" : { 
>>>>>> "ntipo" : [5] }
>>>>>>                                                 }
>>>>>>                                         ]
>>>>>>                                 }
>>>>>>                         }
>>>>>>                 }
>>>>>> 
>>>>>>         }
>>>>>> }';
>>>>>> 
>>>>>> If I don't include the "range" filter, everything works fine (filtering 
>>>>>> by the other fields, number of results, order, etc), what am I doing 
>>>>>> wrong?
>>>>>> 
>>>>>> -- 
>>>>>> You received this message because you are subscribed to the Google 
>>>>>> Groups "elasticsearch" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>>> an email to [email protected].
>>>>>> To view this discussion on the web visit 
>>>>>> https://groups.google.com/d/msgid/elasticsearch/be4ca3a2-081f-458a-a006-8d8e80ef23e5%40googlegroups.com.
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>> 
>>> -- 
>>> You received this message because you are subscribed to the Google Groups 
>>> "elasticsearch" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>> email to [email protected].
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/elasticsearch/5ac37c0e-69a7-4ffd-b211-497fb88b7e23%40googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "elasticsearch" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/elasticsearch/87b1d3a8-a7a6-4b84-9928-bbcd6e4094e8%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/8B7CFD52-8EDF-4D77-BF57-2BFEEA4DC212%40pilato.fr.
For more options, visit https://groups.google.com/d/optout.

Reply via email to