Wildcard search on nested object in ElasticSearch

Let's say we are storing objects of type vehicle which have a reference to
a type owner in the following structure. Then Running the following request:

`POST: localhost:9200/15/vehicles/_search'

with the following body:

 { "query": { "wildcard": {"make":"*toy*"} }}

returns the relevant objects:

     "took": 5,
     "timed_out": false,
     "_shards": {
        "total": 5,
        "successful": 5,
        "failed": 0
     },
    "hits": {
        "total": 1,
    "max_score": 1,
    "hits": [
        {
            "_index": "15.index",
            "_type": "vehicle",
            "_id": "352",
            "_score": 1,
            "_source": {
                "id": "352",
                "name": "toyota",
                "owner_id": "12",
                "owner": {
                    "id": "12",
                    "name": "John Smith",
                    "login_id": 1,
                    "active": true,
                }
            }
        }
    ]
}

I am now attempting to query by nested object (e.g. all vehicles that
belong to user John Smith)

 {"query": {"wildcard": {"owner.name": "*John*"}}}

returns no results, while:

 {"query": {"wildcard": {"owner": {"name": "*John*"}}}}

errors out with:

  "error": "SearchPhaseExecutionException[Failed to execute phase 

[query], all shards failed; shardFailures {....
[4]: SearchParseException[....
Parse Failure [Failed to parse source [{ "query": { "wildcard":
{"owner": {"name":"ab"} }}}]]]; nested: QueryParsingException[....
[wildcard] query does not support [name]]; }{....
[3]: SearchParseException[....
: Parse Failure [Failed to parse source [{ "query": { "wildcard":
{"owner": {"name":"ab"} }}}]]]; nested: QueryParsingException[....
[wildcard] query does not support [name]]; }{....
[2]: SearchParseException[....
]: Parse Failure [Failed to parse source [{ "query": { "wildcard":
{"owner": {"name":"ab"} }}}]]]; nested: QueryParsingException[....
[wildcard] query does not support [name]]; }{....
: SearchParseException[[....
: Parse Failure [Failed to parse source [{ "query": { "wildcard":
{"owner": {"name":"ab"} }}}]]]; nested: QueryParsingException[....
[wildcard] query does not support [name]]; }{....
[0]: SearchParseException[....: Parse Failure [Failed to parse source
[{ "query": { "wildcard": {"owner": {"name":"ab"} }}}]]];
nested: QueryParsingException[.... [wildcard] query does not support
[name]]; }]",
"status": 400

What is the correct format for a query (wildcard or otherwise) against a
nested object? How specifically do wildcard queries differ from that
template (if at all)?

--
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+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/55a91fbc-5bc4-44b6-a39e-1efc942fe63d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Try this:
{"query": {"wildcard": {"owner.name": « john"}}}

Wildcard is not analyzed

Also, don’t use wildcard queries.
Look : http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-wildcard-query.html#query-dsl-wildcard-query

Note this query can be slow, as it needs to iterate over many terms. In order to prevent extremely slow wildcard queries, a wildcard term should not start with one of the wildcards * or ?.

--
David Pilato | Technical Advocate | elasticsearch.com
david.pilato@elasticsearch.com
@dadoonet | @elasticsearchfr | @scrutmydocs

Le 21 septembre 2014 à 11:13:10, abraham polishchuk (apolishc@gmail.com) a écrit:

Let's say we are storing objects of type vehicle which have a reference to a type owner in the following structure. Then Running the following request:

`POST: localhost:9200/15/vehicles/_search'

with the following body:

 { "query": { "wildcard": {"make":"*toy*"} }}

returns the relevant objects:

     "took": 5,
     "timed_out": false,
     "_shards": {
        "total": 5,
        "successful": 5,
        "failed": 0
     },
    "hits": {
        "total": 1,
    "max_score": 1,
    "hits": [
        {
            "_index": "15.index",
            "_type": "vehicle",
            "_id": "352",
            "_score": 1,
            "_source": {
                "id": "352",
                "name": "toyota",
                "owner_id": "12",
                "owner": {
                    "id": "12",
                    "name": "John Smith",
                    "login_id": 1,
                    "active": true,
                }
            }
        }
    ]
}

I am now attempting to query by nested object (e.g. all vehicles that belong to user John Smith)

 {"query": {"wildcard": {"owner.name": "*John*"}}}

returns no results, while:

 {"query": {"wildcard": {"owner": {"name": "*John*"}}}}

errors out with:

  "error": "SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures {....
  [4]: SearchParseException[....
  Parse Failure [Failed to parse source [{ \"query\": { \"wildcard\": {\"owner\": {\"name\":\"*ab*\"} }}}]]]; nested: QueryParsingException[....
 [wildcard] query does not support [name]]; }{....
 [3]: SearchParseException[....
: Parse Failure [Failed to parse source [{ \"query\": { \"wildcard\": {\"owner\": {\"name\":\"*ab*\"} }}}]]]; nested: QueryParsingException[....
 [wildcard] query does not support [name]]; }{....
 [2]: SearchParseException[....
 ]: Parse Failure [Failed to parse source [{ \"query\": { \"wildcard\": {\"owner\": {\"name\":\"*ab*\"} }}}]]]; nested: QueryParsingException[....
 [wildcard] query does not support [name]]; }{....
 : SearchParseException[[....
: Parse Failure [Failed to parse source [{ \"query\": { \"wildcard\": {\"owner\": {\"name\":\"*ab*\"} }}}]]]; nested: QueryParsingException[....
 [wildcard] query does not support [name]]; }{....
 [0]: SearchParseException[....: Parse Failure [Failed to parse source [{ \"query\": { \"wildcard\": {\"owner\": {\"name\":\"*ab*\"} }}}]]]; nested: QueryParsingException[.... [wildcard] query does not support [name]]; }]",
"status": 400

What is the correct format for a query (wildcard or otherwise) against a nested object? How specifically do wildcard queries differ from that template (if at all)?

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+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/55a91fbc-5bc4-44b6-a39e-1efc942fe63d%40googlegroups.com.
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+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/etPan.541e9f23.6b8b4567.2bf8%40MacBook-Air-de-David.local.
For more options, visit https://groups.google.com/d/optout.