0

I use ElaticSearch 1.7.2 for my project and marvel plugin for testing query. My query template like that:

GET myindex/_search
{
  "query": {
    "filtered": {
      "query": {
        "bool": {
          "minimum_should_match": 1,
          "should": [
            {
              "nested": {
                "path": "mypath",
                "query": {
                  "bool": {
                    "should": [
                      {
                        "terms": {
                          "mypath.field": []
                        }
                      },
                      {
                        "match": {
                          "mypath.desc": "abb"
                        }
                      }
                    ],
                    "minimum_number_should_match": 1
                  }
                }
              }
            },
            {
              "nested": {
                "path": "mypath02",
                "query": {
                  "bool": {
                    "should": [
                      {
                        "match": {
                          "mypath02.one": "1"
                        }
                      },
                      {
                        "match": {
                          "mypath02.two": "2"
                        }
                      },
                      {
                        "match": {
                          "mypath02.three": "3"
                        }
                      }
                    ],
                    "minimum_number_should_match": 1
                  }
                }
              }
            },
            {
              "nested": {
                "path": "mypath03",
                "query": {
                  "bool": {
                    "should": [
                      {
                        "terms": {
                          "mypath03.hash": [
                            "39651",
                            "cecc5"
                          ]
                        }
                      }
                    ]
                  }
                }
              }
            },
            {
              "nested": {
                "path": "mypath04",
                "query": {
                  "bool": {
                    "should": [
                      {
                        "terms": {
                          "mypath04.hash": [
                            "39651",
                            "cecc5"
                          ]
                        }
                      },
                      {
                        "nested": {
                          "path": "mypath05",
                          "query": {
                            "bool": {
                              "should": [
                                {
                                  "match": {
                                    "mypath05.hash01": "afcee"
                                  }
                                },
                                {
                                  "match": {
                                    "mypath05.hash02": "aceff"
                                  }
                                }
                              ],
                              "minimum_number_should_match": 1
                            }
                          }
                        }
                      }
                    ]
                  }
                }
              }
            }
          ]
        }
      }
    }
  }
}

the first time, I execute, I have got this message :

Request failed to get to the server (status code: 0):

Elasticsearch may not be reachable or you may need to check your CORS settings.If CORS is enabled, try turning off Sense's Basic Authentication support under Setting (cog icon).This will result in a less strict CORS enforcement by the browser. Please check the marvel documentation for more information.

update 11.23.2015 add more log info in file : elasticsearch.log

[2015-11-23 01:12:16,911][WARN ][http.netty               ] [Kick-Ass] Caught exception while handling client http traffic, closing connection [id: 0x29cab67e, /192.168.16.1:2703 :> /192.168.16.132:9200]
java.lang.IllegalArgumentException: empty text
        at org.elasticsearch.common.netty.handler.codec.http.HttpVersion.<init>(HttpVersion.java:89)
        at org.elasticsearch.common.netty.handler.codec.http.HttpVersion.valueOf(HttpVersion.java:62)
        at org.elasticsearch.common.netty.handler.codec.http.HttpRequestDecoder.createMessage(HttpRequestDecoder.java:75)
        at org.elasticsearch.common.netty.handler.codec.http.HttpMessageDecoder.decode(HttpMessageDecoder.java:191)
        at org.elasticsearch.common.netty.handler.codec.http.HttpMessageDecoder.decode(HttpMessageDecoder.java:102)
        at org.elasticsearch.common.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:500)
        at org.elasticsearch.common.netty.handler.codec.replay.ReplayingDecoder.cleanup(ReplayingDecoder.java:554)
        at org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.channelDisconnected(FrameDecoder.java:365)
        at org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:102)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
        at org.elasticsearch.common.netty.OpenChannelsHandler.handleUpstream(OpenChannelsHandler.java:74)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
        at org.elasticsearch.common.netty.channel.Channels.fireChannelDisconnected(Channels.java:396)
        at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.close(AbstractNioWorker.java:360)
        at org.elasticsearch.common.netty.channel.socket.nio.NioServerSocketPipelineSink.handleAcceptedSocket(NioServerSocketPipelineSink.java:81)
        at org.elasticsearch.common.netty.channel.socket.nio.NioServerSocketPipelineSink.eventSunk(NioServerSocketPipelineSink.java:36)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendDownstream(DefaultChannelPipeline.java:779)
        at org.elasticsearch.common.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream(OneToOneEncoder.java:54)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:591)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendDownstream(DefaultChannelPipeline.java:784)
        at org.elasticsearch.common.netty.channel.SimpleChannelHandler.closeRequested(SimpleChannelHandler.java:334)
        at org.elasticsearch.common.netty.channel.SimpleChannelHandler.handleDownstream(SimpleChannelHandler.java:260)
        at org.elasticsearch.http.netty.pipelining.HttpPipeliningHandler.handleDownstream(HttpPipeliningHandler.java:105)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:591)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:582)
        at org.elasticsearch.common.netty.channel.Channels.close(Channels.java:812)
        at org.elasticsearch.common.netty.channel.AbstractChannel.close(AbstractChannel.java:206)
        at org.elasticsearch.http.netty.NettyHttpServerTransport.exceptionCaught(NettyHttpServerTransport.java:343)
        at org.elasticsearch.http.netty.HttpRequestHandler.exceptionCaught(HttpRequestHandler.java:72)
        at org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:112)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
        at org.elasticsearch.common.netty.channel.SimpleChannelHandler.exceptionCaught(SimpleChannelHandler.java:156)
        at org.elasticsearch.common.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:130)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
        at org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.exceptionCaught(SimpleChannelUpstreamHandler.java:153)
        at org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:112)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
        at org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.exceptionCaught(SimpleChannelUpstreamHandler.java:153)
        at org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:112)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
        at org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.exceptionCaught(FrameDecoder.java:377)
        at org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:112)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
        at org.elasticsearch.common.netty.OpenChannelsHandler.handleUpstream(OpenChannelsHandler.java:74)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
        at org.elasticsearch.common.netty.channel.Channels.fireExceptionCaught(Channels.java:525)
        at org.elasticsearch.common.netty.channel.AbstractChannelSink.exceptionCaught(AbstractChannelSink.java:48)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.notifyHandlerException(DefaultChannelPipeline.java:658)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:566)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
        at org.elasticsearch.common.netty.OpenChannelsHandler.handleUpstream(OpenChannelsHandler.java:74)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
        at org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:268)
        at org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:255)
        at org.elasticsearch.common.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
        at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)
        at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337)
        at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
        at org.elasticsearch.common.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
        at org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
        at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

I have followed this thread : ES reachable from curl but not from Marvel/Sense

but nothing is solved !

actually, when I remove only one nested query from my query above, It run successfully.

Please help me solve this issues ! thanks.

My problem is sovled 11.23.2015

I didn't delcare exactly type of in fields which are nested object, update mapping of index & my query run successfully.

Community
  • 1
  • 1
m0z4rt
  • 1,055
  • 2
  • 17
  • 25
  • Can you post the query that you say it works? – Andrei Stefan Nov 17 '15 at 08:12
  • just remove only one nested query from my query, for example, remove the nested query which includes :"nested": { "path": "mypath02", ..... – m0z4rt Nov 17 '15 at 08:44
  • It doesn't make sense. Queries from Sense fail or not, no matter the query. Because the failure comes from the connection, not from the query itself. I suggest testing again this and come up with a correct list of reproduction steps. – Andrei Stefan Nov 17 '15 at 09:30
  • @Andrei Stefan the output message makes me feel confused ! I I don't know fail or not. "Elasticsearch may not be reachable or you may need to check your CORS settings .........". I have the same results with curl command line. – m0z4rt Nov 17 '15 at 10:28
  • @Tr.Crab, your question makes us feel confused. We don't know what failed either and without extra information (how do you submit query, what happens, where is your client and ES located...), we still won't. – LAFK 4Monica_banAI_modStrike Nov 17 '15 at 16:18
  • @LIttleAncientForestKami I setup es 1.7.2 in Ubuntu 14, I run query in both Marvel plugin and curl command line. At this time, I have tried ES 1.6.0, but the message output related with "CORS..." which made me confused too. – m0z4rt Nov 22 '15 at 15:55

1 Answers1

0

I still don't know where your client/server are (same machine, different machines) and what you are doing (running curl can differ A LOT). Working on what you gave us, here's my answer (which I'd insert as a comment for it's rudimentary character, if not for screenshot). Assuming default ES settings and configuration.

Please check if

  1. CORS is turned on for your ElastiSearch server
  2. Among accepted origins for CORS is where your client / curl tries to connect from
  3. CORS is enabled and if so (and you are using Sense) disable Sense's Basic Authentication support
  4. your HTTP request that you submit to ElasticSearch (keep in mind, that's not just your search query) meets required LENGTH criteria

For criteria details, see screenshot below:

screenshot from ES docs

Source: https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-http.html (as read on 22nd Nov 2015).