Re: solr.StrField with stored=true useless or bad?

2012-09-11 Thread Yonik Seeley
On Tue, Sep 11, 2012 at 7:03 PM,  sy...@web.de wrote:
 The purpose of stored=true is to store the raw string data besides the 
 analyzed/transformed data for displaying purposes. This is fine for an 
 analyzed solr.TextField, but for an StrField both values are the same. So is 
 there any reason to apply stored=true on a StrField as well?

You're over-thinking things a bit ;-)

if you want to search on it: index it
If you want to return it in search results: store it
Those are two orthogonal things (even for StrField).

Why?  Indexed means full-text inverted index: words (terms) point to
documents.  It's not easy/fast for a given document to find out what
terms point to it.  Stored fields are all stored together and can be
retrieved together given a document id.  Hence search finds lists of
document ids (via indexed fields), and can then return any of the
stored fields for those document ids.

-Yonik
http://lucidworks.com


Re: solr.StrField with stored=true useless or bad?

2012-09-11 Thread Ahmet Arslan
 The purpose of stored=true is to store the raw string data
 besides the analyzed/transformed data for displaying
 purposes. This is fine for an analyzed solr.TextField, but
 for an StrField both values are the same. So is there any
 reason to apply stored=true on a StrField as well?

If you don't store it, you cannot retrieve it (displaying purposes) via fl= 
parameter. You can access indexed values via faceting, terms component etc.


Re: solr.StrField with stored=true useless or bad?

2012-09-11 Thread Amit Nithian
This is great thanks for this post! I was curious about the same thing
and was wondering why fl couldn't return the indexed
representation of a field if that field were only indexed but not
stored. My thoughts were return something than nothing but I didn't
pay attention to the fact that getting even the indexed
representation of a field given a document is not fast.

Thanks
Amit

On Tue, Sep 11, 2012 at 4:03 PM,  sy...@web.de wrote:
 Hi,

 I have a StrField to store an URL. The field definition looks like this:
 field name=link type=string indexed=true stored=true required=true 
 /

 Type string is defined as usual:
 fieldType name=string class=solr.StrField sortMissingLast=true /

 Then I realized that a StrField doesn't execute any analyzers and stored data 
 verbatim. The data is just a single token.

 The purpose of stored=true is to store the raw string data besides the 
 analyzed/transformed data for displaying purposes. This is fine for an 
 analyzed solr.TextField, but for an StrField both values are the same. So is 
 there any reason to apply stored=true on a StrField as well?

 I ask, because I found a lot of sites and tutorials applying stored=true on 
 StrFields as well. Do they all to it wrong or am I missing something here?