title: Why do I need "store":"yes" in elasticsearch?
body: <p>I really don't understand why in <a href="http://www.elasticsearch.org/guide/reference/mapping/core-types/">core types link</a> it says in the attributes descriptions (for a number, for example):</p>
  
  <ol>
  <li>store - Set to yes to store actual field in the index, no to not store it. Defaults to no (note, <strong>the JSON document itself is stored, and it can be retrieved from it</strong>)</li>
  <li>index - Set to no if the value should not be indexed. In this case, store should be set to yes, since if it’s not indexed and not stored, <strong>there is nothing to do with it</strong></li>
  </ol>
  
  <p>The two bold parts seem to contradict. If <code>"index":"no", "store":"no"</code> I could still get the value from the source. This could be a good use if I have a field containing a URL for example. No?</p>
  
  <p>I had a little experiment, where I had two mappings, in one a field was set to <code>"store":"yes"</code> and in the other to <code>"store":"no"</code>.</p>
  
  <p>In both cases I could still specify in my query:</p>
  
  <pre><code>{"query":{"match_all":{}}, "fields":["my_test_field"]}
  </code></pre>
  
  <p>and I got the same answer, returning the field.</p>
  
  <p>I thought that if <code>"store"</code> is set to <code>"no"</code> it would mean I could not retreive the specific field, but had to get the whole <code>_source</code> and parse it on the client side.</p>
  
  <p>So, what benefit is there in setting <code>"store"</code> to <code>"yes"</code>? Is it only relevant if I exclude the field from the <code>"_source"</code> field explicitly?</p>