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
>>
>> <https://groups.google.com/d/msgid/elasticsearch/be4ca3a2-081f-458a-a006-8d8e80ef23e5%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> 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.