Hey I think I got it!

So in my curl request, I was specifying the two indexes in the rest 
endpoint, but I did not specify them in my java search request.  My only 
other index is a suggest index, and I would think that it would be ignored 
when I ran the query, but I guess not.

Thanks a lot for your time.  This was definitely one of those bang your 
head against the wall issues.

On Thursday, August 21, 2014 11:06:32 AM UTC-4, Elliott Bradshaw wrote:
>
> Hi guys,
>
> Thanks for getting back to me.
>
> Here's the JSON for the query:
>
> { "bool" : {
>     "must" : [ {
>             "indices" : {
>                 "indices" : "index1",
>                 "query" : {
>                     "filtered" : {
>                         "query" : {
>                             "function_score" : {
>                                 "query" : {
>                                     "multi_match" : {
>                                         "query" : "this is my query 
> string",
>                                         "fields" : [ "field1^1.2", 
> "field2", "field3", "field4", "field5" ],
>                                         "type" : "cross_fields",
>                                         "operator" : "AND",
>                                         "boost" : 1.2,
>                                         "fuzziness" : "AUTO", //does not 
> work unfortunately on cross_fields :( ...
>                                         "minimum_should_match" : "75%",
>                                         "tie_breaker" : 0.1
>                                     }
>                                 },
>                                 "gauss" : {
>                                     "fields6" : {
>                                         "origin" : 1,
>                                         "scale" : 25
>                                     }
>                                 }
>                             }
>                         },
>                         "filter" : {
>                             "and" : {
>                                 "filters" : []
>                             }
>                         }
>                     }
>                 }
>             }
>         }, 
>         {
>             "indices" : {
>                 "indices" : "index2",
>                 "query" : {
>                     "filtered" : {
>                         "query" : {
>                             "multi_match" : {
>                                 "query" : "this is my query string",
>                                 "fields" : [ "field7^1.2", "field6", 
> "field9", "field10", "field11" ],
>                                 "type" : "cross_fields",
>                                 "operator" : "AND",
>                                 "boost" : 1.2,
>                                 "fuzziness" : "AUTO", //does not work 
> unfortunately on cross_fields :( ...
>                                 "minimum_should_match" : "75%",
>                                 "tie_breaker" : 0.1
>                             }
>                         },
>                         "filter" : {
>                             "and" : {
>                                 "filters" : []
>                             }
>                         }
>                     }
>                 }
>             }
>         }
>     ]
> }
>
> This JSON is output to a log by the following Java code:
>
> QueryBuilder query = getQuery();
>
> String json = query.toXContent(jsonBuilder(), null).string();
> logger.debug(json);  //Outputs JSON that I copy into my curl body 
> (displayed above)
>
> I then execute the query:
>
> logger.debug("Search request beginning");
>
> SearchResponse response = client
> .prepareSearch()
> .setQuery(query)
> .setExplain(false)
> .setSize(10)
> .execute().actionGet();
>
> logger.debug("Search request complete");
>
> The time between the two debug statements is always between 1-2 seconds.  
> This is after running many queries via a webservice.  The curl request 
> always runs in 10-30 ms.  
>
> Any other thoughts?
>
> On Wednesday, August 20, 2014 10:23:49 PM UTC-4, vineeth mohan wrote:
>>
>> Hello Elliott , 
>>
>> There could be many other variables here.
>> One is that the first time when you run the query , it would be slow and 
>> the second time when you run it , then it is fast.
>> You might have always executed the java code first and then tried the 
>> normal curl.
>>
>> Please reproduce the issue in a java code with just the query and paste 
>> here.
>> That might help us better debug the issue.
>>
>> Thanks
>>           Vineeth
>>
>>
>> On Thu, Aug 21, 2014 at 7:46 AM, Elliott Bradshaw <[email protected]> 
>> wrote:
>>
>>> Jorg,
>>>
>>> Thanks for the response.  I understand that curl hits the Java API, 
>>> that's why the issue is so strange.  
>>>
>>> I will try to make some more tweaks tomorrow, and I can send the query 
>>> as well.  I can't post the java code as it's extensive and spans several 
>>> classes (the resultant query is relatively complex).  However, I log the 
>>> JSON dump of the final QueryBuilder object and use that in my curl request.
>>>
>>> - Elliott
>>>
>>>
>>> On Wednesday, August 20, 2014 2:55:50 PM UTC-4, Jörg Prante wrote:
>>>
>>>> Since curl requests use the Java API, it is impossible to execute this 
>>>> faster than Java API.
>>>>
>>>> Can you post the Java code and curl request you use? Have you compared 
>>>> the queries sent? What does the query look like? How does the result look 
>>>> like?
>>>>
>>>> Without this information it is very hard to discuss any issue, it will 
>>>> be just guessing.
>>>>
>>>> Jörg
>>>>
>>>>
>>>> On Wed, Aug 20, 2014 at 8:02 PM, Elliott Bradshaw <[email protected]> 
>>>> wrote:
>>>>
>>>>> Hi Vineeth,
>>>>>
>>>>> The system is currently deployed on a Tomcat server and the client is 
>>>>> created a single time on application start up.  The time I gave of 1-2 
>>>>> seconds is for the query alone, as far as I know.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Elliott
>>>>>
>>>>>
>>>>> On Wednesday, August 20, 2014 12:46:34 PM UTC-4, vineeth mohan wrote:
>>>>>
>>>>>> Hello Eliott , 
>>>>>>
>>>>>> I suspect if this has something to do with client creation.
>>>>>> Can you see the time taken for the query alone and not the client 
>>>>>> creation.
>>>>>>
>>>>>> Other possible reasons can be refresh flag ON.
>>>>>> Please check that also.
>>>>>>
>>>>>> Thanks
>>>>>>           Vineeth
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Aug 20, 2014 at 10:11 PM, Elliott Bradshaw <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Vineeth,
>>>>>>>
>>>>>>> Thanks, but according to the documentation, it looks like sniffing 
>>>>>>> is only supported when using the TransportClient.  I'm using the 
>>>>>>> standard 
>>>>>>> Node/Client configuration.
>>>>>>>
>>>>>>>
>>>>>>> On Wednesday, August 20, 2014 12:24:45 PM UTC-4, vineeth mohan wrote:
>>>>>>>
>>>>>>>> Hello Elliot , 
>>>>>>>>
>>>>>>>> Is the sniffing enabled while creating the client.
>>>>>>>> This means that , it will determine which all machines are enabled 
>>>>>>>> and does some load balancing. 
>>>>>>>> Which means that it needs additional time while creating the client.
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>>            Vineeth
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Aug 20, 2014 at 9:39 PM, Elliott Bradshaw <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> I'm joining an existing cluster as a node via the Java API.  I 
>>>>>>>>> generate a relatively complicated multi-index "indices" query that 
>>>>>>>>> combines 
>>>>>>>>> the results of two different queries on two modestly sized indexes 
>>>>>>>>> (150M 
>>>>>>>>> records combined).  Execution of actionGet() on this query takes 
>>>>>>>>> approximately 1-2 seconds.  On the other hand, if I dump the same 
>>>>>>>>> query to 
>>>>>>>>> JSON via the XContent jsonBuilder() and execute it with curl, it 
>>>>>>>>> takes only 
>>>>>>>>> 14 ms.  Results are identical in both cases.
>>>>>>>>>
>>>>>>>>> Has anyone else had similar problems like this?  Any thoughts on 
>>>>>>>>> what might be the source of the problem?  My next thought was to try 
>>>>>>>>> connecting to the cluster via a TransportClient.  Not sure if it will 
>>>>>>>>> help 
>>>>>>>>> or not...
>>>>>>>>>
>>>>>>>>> Thanks!
>>>>>>>>>
>>>>>>>>> - Elliott
>>>>>>>>>
>>>>>>>>>  -- 
>>>>>>>>> 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/fa4fb57e-3be
>>>>>>>>> b-4e80-8672-1981bcb8c35c%40googlegroups.com 
>>>>>>>>> <https://groups.google.com/d/msgid/elasticsearch/fa4fb57e-3beb-4e80-8672-1981bcb8c35c%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/bfae9628-021
>>>>>>> 2-4b03-8f76-4fb85aab23e9%40googlegroups.com 
>>>>>>> <https://groups.google.com/d/msgid/elasticsearch/bfae9628-0212-4b03-8f76-4fb85aab23e9%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/16c49c37-4c0c-4b37-85a5-2969aa6c5ee4%
>>>>> 40googlegroups.com 
>>>>> <https://groups.google.com/d/msgid/elasticsearch/16c49c37-4c0c-4b37-85a5-2969aa6c5ee4%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/cb19a3a8-c8dc-48c8-aa44-ebd718667be3%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/elasticsearch/cb19a3a8-c8dc-48c8-aa44-ebd718667be3%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/b7b073db-eef5-4680-9d4e-05a261ffd0b3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to