Why is queryWeight included for some result scores, but not others, in the same query?

I'm executing a query_string query with one term on multiple fields, _all
and tags.name, and trying to understand the scoring. Query:
{"query":{"query_string":{"query":"animal","fields":["_all","tags.name"]}}}.
Here are the documents returned by the query:

  • Document 1 has an exact match on tags.name, but not on _all.
  • Document 8 has an exact match on both tags.name and on _all.

Document 8 should win, and it does, but I'm confused by how the scoring
works out. It seems like Document 1 is getting penalized by having its
tags.name score multiplied by the IDF twice, whereas Document 8's tags.name score
is only multiplied by the IDF once. In short:

  • They both have a component weight(tags.name:animal in 0)
    [PerFieldSimilarity].
  • In Document 1, we have weight = score = queryWeight x fieldWeight.
  • In Document 8, we have weight = fieldWeight!

Since queryWeight contains idf, this results in Document 1 getting
penalized by its idf twice.

Can anyone make sense of this?

I posted this on Stackoverflowhttp://stackoverflow.com/questions/21213947/why-is-queryweight-included-for-some-result-scores-but-not-othersa week ago; the question has some additional information attached to it.

--
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/e9bbf46a-b375-45a0-bdd4-3510416bbb03%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Hi all,

I'm using Elasticsearch 1.7.0 & also suffering from this same problem. I googled it day by day but still find no reasonable answer except the vague clue that it relates to the sharding effect. But how? Could anyone please help me?

Best regards,