Yeah, I did what you said and it works.

However, my query is more complex than the example I posted.

The real query is something like this. It has been working very well, (i.e. 
through setSource() method), since my previous commit about 3 months ago. 
But it just stopped working today.

Does Elasticsearch change something in the latest version?

{
  "size": "100",
  "query": {
    "indices": {
      "no_match_query": "none",
      "indices": [
        "some_index"
      ],
      "query": {
        "nested": {
          "path": "NE",
          "query": {
            "filtered": {
              "filter": {
                "bool": {
                  "must": [
                    {
                      "term": {
                        "NE.CODE": "CODE_1"
                      }
                    },
                    {
                      "script": {
                        "script": "str = doc[fieldName].value; if (str == 
null) return false; else return str.toInteger() < fieldValue;",
                        "params": {
                          "fieldName": "NE.VALUE",
                          "fieldValue": 90
                        }
                      }
                    },
                    {
                      "range": {
                        "NE.DAYS": {
                          "from": 98,
                          "to": 104
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      }
    }
  },
  "post_filter": {
    "query": {
      "nested": {
        "path": "NE",
        "query": {
          "filtered": {
            "filter": {
              "bool": {
                "must": [
                  {
                    "term": {
                      "NE.": "CODE_2"
                    }
                  },
                  {
                    "range": {
                      "NE.VALUE": {
                        "from": 70,
                        "to": 104
                      }
                    }
                  },
                  {
                    "term": {
                      "NE.LOCATION": "SOME_LOCATION"
                    }
                  }
                ]
              }
            }
          }
        }
      }
    }
  }
}



On Wednesday, February 25, 2015 at 9:20:31 PM UTC-8, David Pilato wrote:
>
> Try remove the "query" level.
>
> String query = "{\"filtered\":{\"filter\":{\"term\":{\"_id\":\"100\"}}}}";
>
> HTH
> --
> David ;-)
> Twitter : @dadoonet / @elasticsearchfr / @scrutmydocs
>
> Le 26 févr. 2015 à 06:09, tonylxc <coo...@gmail.com <javascript:>> a 
> écrit :
>
> I'm using the latest Elasticsearch Java API 1.4.4. And I find this issue 
> annoying me really badly.
>
> Normally, if you want to do a query using JSON string, you could do this:
>
>  Client client = ...
>
>
>  String query = 
> "{\"query\":{\"filtered\":{\"filter\":{\"term\":{\"_id\":\"100\"}}}}}";
>
>
>  SearchRequestBuilder request = client
>  .prepareSearch("patient_centric_1")
>  .setTypes("patient_data")
>  .setSource(query);
>
>
>  logger.debug(request.toString());
>
>
>  SearchResponse response = request.execute().actionGet();
>
>
> And then parse the response.
>
> But it doesn't work for me. The response I expected is get some data with 
> _id=100, but the response I get is all the data. And the debug output 
> prints "{ }".
>
> To be precisely, it worked yesterday with version 1.4.2, but not today. 
> And even I downgraded to 1.4.2, it doesn't work!!
>
> But if I use the QueryBuilders to do the same query, it works. And the 
> debug output prints the equivalent JSON query string.
>
> Client client = ...
>
>  String query = 
> "{\"query\":{\"filtered\":{\"filter\":{\"term\":{\"_id\":\"100\"}}}}}";
>
>  SearchRequestBuilder request = client
>  .prepareSearch("patient_centric_1")
>  .setTypes("patient_data")
>  .setQuery(QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(), 
> FilterBuilders.termFilter("_id", "100")));
>
> logger.debug(request.toString());
>
> SearchResponse response = request.execute().actionGet();
>
>
>
> Does anyone know why it happens?
>
>  -- 
> 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 elasticsearc...@googlegroups.com <javascript:>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/elasticsearch/46724ac4-fc6d-4d0f-bb31-7e61baf89439%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/elasticsearch/46724ac4-fc6d-4d0f-bb31-7e61baf89439%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 elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/4d9e5c9b-674f-4b48-848c-1a3c00710fc3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to