Yes, all three fields should be docValues. The point of docValues is
to keep from "uninverting" the docValues structure in Java's heap. Any
time you have to answer the question "What is the value in
docX.fieldY" it should be a docValues field. The way facets (and
funciton queries for tha t matter work) is that the doc is scored. If
the doc has a non-zero score, the values in fields need to be
evaluated. So picture:
1> score doc X
2> if score is non-zero then for docx, field category, add one to the
facet bucket for that value. For x and y add them to the facet stat.

Best,
Erick

On Wed, Feb 8, 2017 at 5:27 AM, Chris Ulicny <culicny@iq.media> wrote:
> I've been trying to figure out how exactly docValues help with facet
> queries, and I only seem to find mention that they are beneficial to facet
> performance without many specifics. What I'd like to know is whether it
> applies to all fields used in the facet or just fields that are faceted on.
>
> For example, consider if we have the following facet
>
> catfacet:{
>     type: terms,
>     field: category,
>     facet: {
>         x_sum:"sum(x)",
>         y_sum:"sum(y)"
>     }
> }
>
> Is it beneficial to have docValues enabled for all three fields used or
> some specific subset of them?
>
> Thanks.

Reply via email to