Yes, surprisingly enough, if indexed=false, docValues=true — you can still
search.  I’ve seen the code behind it; it’s interesting.  Rob wrote it.
I’m not sure how scalable it is compared to the inverted index.  I suspect
it wouldn’t do well for a lot of distinct values but will fine for a small
number of them.  What definition of “small” though… I don’t know.  I’d love
to see benchmarks of such a comparison.

~ David Smiley
Freelance Apache Lucene/Solr Search Consultant/Developer
http://www.linkedin.com/in/davidwsmiley

On Thu, Apr 9, 2015 at 8:30 PM, Erick Erickson <erickerick...@gmail.com>
wrote:

> So I was a bit embarrassed to be asked whether there was a use-case
> for this. I did some simple tests on a field (with a magnificent total
> of 32 docs indexed) and, with the exception of an error that
> facet.mincount=0 doesn't work if a field isn't indexed (see
> SOLR-5260), everything I tried worked fine. Searching by wildcards,
> searching with the term query parser, faceting, grouping, whatever. I
> admit I didn't spend very much time looking.
>
> As I understand it DocValues are basically a serialized UnInverted
> field so I'm wondering how searches work at all. Or, more
> specifically, whether this works fine on small numbers of docs but
> wouldn't scale. Or does a search on a DocValues field build an
> inverted field?
>
> Or anything else I should know. Is the rule simply 'if you search on
> it, or use it in fq clauses, set indexed="true", and if you facet,
> group etc. set indexed="true" '. So it would make sense to set
> docValues="true" and indexed="false" on a field that's never searched
> or used in an fq clause but used for faceting & etc.
>
> So my mental model is "some operations need inverted fields, and some
> need uninverted fields" and that docValues provide a way to store
> uninverted fields on disk just like indexed="true" allows you to store
> inverted fields on disk. Assuming you need both and set both
> indexed="true" and docValues="true",  the _total_ memory requirements
> for Solr are the same. What's NOT the same is that the docValues make
> use of MMapDirectory where uninverting a field doesn't (this last is a
> total guess).
>
> I'm preparing a Google Doc that I'll certainly permit to anyone who
> wants to add to it. I'll then add the results into the Reference
> Guide.
>
> Anyway, you can see I'm confused, but if I ask enough silly questions
> eventually my questions get less silly.
>
> Erick
>

Reply via email to