Hi Stefanie
Whole hearted apologies - I was incorrect.
It does indeed fail if the field is not in the mapping of whichever
index it looks at first (which varies per shard and per run)
please open an issue for this
thanks
Clint
On Tue, 2013-03-19 at 13:10 -0700, Stefanie wrote:
Clinton,
The setup that I have is:
index test1
curl -X POST http://localhost:9200/test1 -d '{
"mappings": {
"a": {
"properties": {
"id": {
"type": "string",
"index": "not_analyzed",
"include_in_all": true
},
"title": {
"type": "string",
"analyzer": "snowball",
"boost": 2.0
},
"description": {
"type": "string",
"analyzer": "snowball"
}
}
}
}
}'
index test2
curl -X POST http://localhost:9200/test2 -d '{
"mappings": {
"b": {
"properties": {
"id": {
"type": "string",
"index": "not_analyzed",
"include_in_all": true
},
"description": {
"type": "string",
"analyzer": "snowball",
"boost": 2.0
},
"location": {
"properties": {
"lat_lon": {
"type": "geo_point",
"lat_lon": true
}
}
}
}
}
}
}'
my alias is set up as
curl -X POST "http://localhost:9200/_aliases" -d '{
"actions":[
{"add":{
"index":"test1",
"alias":"u1"
}
},
{"add":{
"index":"test2",
"alias":"u1"
}
}
]
}'
I am running my query against the alias and what I am looking for is
test1 that matches "Dallas" in title or description and test2 that
matches "Dallas" in description or location.lat_lon within 50 miles
of [-96.795402, 32.778149]. The boolean in the query section works so
that I do not get an error when test2 does not have the field title
but is does not work within the filters section when test1 does not
have the field location.lat_lon. If I run the query against just
test2 I do not get any errors.
Thank you,
Stefanie
On Tuesday, March 19, 2013 3:34:50 PM UTC-4, Clinton Gormley wrote:
Hi Stefanie
> Clinton,
> Thank you for the reply.
>
>
> My issue I am having is not with my mapping but that I am
searching
> across multiple indexes and not all
> of them has the location.lat_log field. I want the filter
to come
> back true for the indexes that have the field is within
> the range or if the index does not have the field. If I
only run the
> query for the indexes with the location.lat_lon field I do
> not get any errors but when the query is run across all of
the indexes
> it fails on the once where the field does not exist.
> I am using alias to group multiple indexes together and I do
not want
> to have to add unnecessary fields or run multiple
> queries if I do not need to.
>
>
> I do not have this issue when I do something similar in the
query
> section, using something like this where the field title
> is not in all of my indexes:
Please reread my email. The problem is not what you think it
is, as i
demonstrated with my example below
>
> On Tuesday, March 19, 2013 7:43:51 AM UTC-4, Clinton Gormley
wrote:
> On Mon, 2013-03-18 at 18:48 -0700, Stefanie wrote:
> > I am working on a query to do some searching
between
> multiple indexes
> > with different fields and I am having an issue
with the
> location
> > filter. In the query I was hoping that an or
filter with a
> missing
> > clause would solve this but I am still getting the
error.
>
> I think you're looking in the wrong place - it's not
the
> missing clause
> that is the problem. It's the geo_point field that
is not
> mapped as
> such.
>
> To demonstrate that this works correctly:
>
> curl -XPUT 'http://127.0.0.1:9200/test/?pretty=1'
-d '
> {
> "mappings" : {
> "foo" : {
> "properties" : {
> "loc" : {
> "type" : "geo_point"
> }
> }
> }
> }
> }
> '
>
> # One doc with a loc
> curl -XPOST
'http://127.0.0.1:9200/test/foo?pretty=1' -d '
> {
> "loc" : [
> 0,
> 0
> ],
> "text" : "xxx"
> }
> '
>
> # One doc without a loc, in the same type
> curl -XPOST
'http://127.0.0.1:9200/test/foo?pretty=1' -d '
> {
> "text" : "xxx"
> }
> '
>
> # One doc without a loc, in a different type
> curl -XPOST
'http://127.0.0.1:9200/test/bar?pretty=1' -d '
> {
> "text" : "xxx"
> }
> '
>
>
> # Search across all types:
>
> curl -XGET
'http://127.0.0.1:9200/test/_search?pretty=1' -d
> '
> {
> "query" : {
> "filtered" : {
> "filter" : {
> "geo_distance" : {
> "distance" : "5km",
> "loc" : [
> 0,
> 0
> ]
> }
> },
> "query" : {
> "match_all" : {}
> }
> }
> }
> }
> '
>
> # {
> # "hits" : {
> # "hits" : [
> # {
> # "_source" : {
> # "text" : "xxx",
> # "loc" : [
> # 0,
> # 0
> # ]
> # },
> # "_score" : 1,
> # "_index" : "test",
> # "_id" : "ZB_XJ4FjQxOYGCMbmXHM1g",
> # "_type" : "foo"
> # }
> # ],
> # "max_score" : 1,
> # "total" : 1
> # },
> # "timed_out" : false,
> # "_shards" : {
> # "failed" : 0,
> # "successful" : 5,
> # "total" : 5
> # },
> # "took" : 4
> # }
>
>
>
>
> --
> 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.
> For more options, visit
https://groups.google.com/groups/opt_out.
>
>
--
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.
For more options, visit https://groups.google.com/groups/opt_out.
--
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.
For more options, visit https://groups.google.com/groups/opt_out.