Are you refreshing the index after inserting the test documents? I could be
simply a matter of timing.

-- 
Ivan


On Sun, Aug 3, 2014 at 8:22 AM, John D. Ament <john.d.am...@gmail.com>
wrote:

> Hi
>
> So after running a few rounds of local automated tests, I've noticed that
> sometimes I get the wrong results in my index.  This seems to only be an
> issue with my automated tests and not when running the application manually
> (at least I haven't seen the wrong results after several executions).
>
> My search looks like this:
>
> SearchResponse searchResponse =
> esClient.client().prepareSearch(indexName).setTypes(RECORD_TYPE)
>                 .setFetchSource(true)
>                 .setPostFilter(FilterBuilders.andFilter(
>                         FilterBuilders.inFilter("typeId",types.toArray(new
> Integer[]{})).cache(false),
>
> FilterBuilders.inFilter("stateId",states.toArray(new
> Integer[]{})).cache(false)
>                 ).cache(false))
>                 .addSort("dateCreated.value", SortOrder.DESC)
>                 .addSort("recordId",SortOrder.DESC)
>                 .execute().actionGet();
>
> The issue appears both with and without the cache flag passed in.
>
> The way my tests work is that I execute a bunch of seeds, then run queries
> against the seeds to verify I get the right results.  I'll create 5 records
> in my test, where the typeId's are always 1,2,3,4 and the stateIds are
> anything between 1 and 14, except for 6.
>
> 5 is a special state in my case.  I only want to include that state
> sometimes.  So I'll run one query with all the states except 5 and 6.  I
> expect that this will give me 4 records back (the 5th record is in state
> 5).  Instead I'm getting back 5 results, as if ES is also including state 5
> in the list even though I didn't want it.
>
> In my test I run this query twice.  The test fails sometimes on the first
> execution, never on the second execution (I have an arquillian deployment,
> and start up the app once, then seed data, run the first query in one test
> method, run the second query in a second test method).  I'm assuming that
> these filters are acting like a pure AND - the record must match both
> fields to be returned.  So, any idea why I might be getting the wrong
> results?
>
> John
>
> --
> 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/c65c050a-2898-4065-b3a5-c8ad0cda0ed1%40googlegroups.com
> <https://groups.google.com/d/msgid/elasticsearch/c65c050a-2898-4065-b3a5-c8ad0cda0ed1%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/CALY%3DcQAGYAseFmXpbQ%2BOGV_toCmjrGGT7A3LqFmLwhsLi6Oxkg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to