Strange behavior: results count depend on arguments count


(Hovsep Avakyan) #1

First I just indexed 2 documents:
curl -XPUT http://192.168.0.118:9200/test/company/apple -d '{data:"Apple
corp"}'
curl -XPUT http://192.168.0.118:9200/test/fruit/apple -d '{data:"Just red
apple"}'

According to example above we have test index with 2 documents (both with
"apple" id) in different types.
When we make curl -XGET http://192.168.0.118:9200/test/_mget?pretty -d
'{ids:["apple","apple"]}'
We see this:
{
"docs" : [ {
"_index" : "test",
"_type" : "fruit",
"_id" : "apple",
"_version" : 1,
"found" : true, "_source" : {data:"Just red apple"}
}, {
"_index" : "test",
"_type" : "fruit",
"_id" : "apple",
"_version" : 1,
"found" : true, "_source" : {data:"Just red apple"}
} ]
}

As you can see documents are duplicated.
So if we request curl -XGET http://192.168.0.118:9200/test/_mget?pretty -d
'{ids:["apple","apple","apple"]}' we will see 3 documents in result set and
so on.

I think the right way to resolve this issue is to ignore duplicate
identificators in "ids" parameter.

--
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/eb04cff0-e28a-453c-8ead-a7824a6e3073%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


(David Pilato) #2

So, what is happening here.

1st request:
You set index to test
type is not set
id is apple
It "guess" the type and send you the document from fruit type.

2nd request:
It's exactly the same request as the first one. So it gives you the same response.

To have the correct results, you should ask for:

GET /test/_mget?pretty
{
"docs" : [
{
"_type" : "company",
"_id" : "apple"
},
{
"_type" : "fruit",
"_id" : "apple"
}
]
}

Or you should use unique ids for the whole index.

--
David Pilato | Technical Advocate | Elasticsearch.com
@dadoonet | @elasticsearchfr

Le 18 juin 2014 à 14:01:36, Hovsep Avakyan (avakyanhovsep@gmail.com) a écrit:

First I just indexed 2 documents:
curl -XPUT http://192.168.0.118:9200/test/company/apple -d '{data:"Apple corp"}'
curl -XPUT http://192.168.0.118:9200/test/fruit/apple -d '{data:"Just red apple"}'

According to example above we have test index with 2 documents (both with "apple" id) in different types.
When we make curl -XGET http://192.168.0.118:9200/test/_mget?pretty -d '{ids:["apple","apple"]}'
We see this:
{
"docs" : [ {
"_index" : "test",
"_type" : "fruit",
"_id" : "apple",
"_version" : 1,
"found" : true, "_source" : {data:"Just red apple"}
}, {
"_index" : "test",
"_type" : "fruit",
"_id" : "apple",
"_version" : 1,
"found" : true, "_source" : {data:"Just red apple"}
} ]
}

As you can see documents are duplicated.
So if we request curl -XGET http://192.168.0.118:9200/test/_mget?pretty -d '{ids:["apple","apple","apple"]}' we will see 3 documents in result set and so on.

I think the right way to resolve this issue is to ignore duplicate identificators in "ids" parameter.

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/eb04cff0-e28a-453c-8ead-a7824a6e3073%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.53a19057.41b71efb.5d8%40MacBook-Air-de-David.local.
For more options, visit https://groups.google.com/d/optout.


(system) #3