Yet a third is that <copyField> is often used when you want to treat
the same data different ways. For instance, consider a "title" field.
You might want to sort by title, but sorting on a tokenized field is
undefined so I might use a copyField from "title" to "title_sort" and
analyze the sort field with some kind of normalized sorting (including
lowercasing, removing leading articles, etc).

Another thing to consider is dynamic fields. You may not _know_ all
the fields up-front and putting them all in a single field to search
may make sense.

You're right though, if you want to construct entire clauses across
individual fields, you can do that explicitly or use edismax and
there's no need to copyField anything.

Best,
Erick


On Tue, Mar 31, 2015 at 6:47 AM, Toke Eskildsen <t...@statsbiblioteket.dk> 
wrote:
> Steven White [swhite4...@gmail.com] wrote:
>> If I have 50 fields in a Solr doc and I index them without doing any
>> <copyField> to a catch-all-field called "all_text".  During search I use
>> "fq" to list all the 50 fields to search on.  Now how different is this
>> from not using "fq" and searching against my catch-all-field of "all_text"
>> using "q"?
>
> One potential use it to have the catch-all-field perform severe normalization 
> to match more queries but rank those extra matches lower than a direct hit in 
> a specific field. The same effect can be accomplished by having differently 
> analyzed versions of the same logical field: Having a single catch-all is 
> just easy to do.
>
> Another reason can be performance: fq-matching against all fields is heavier 
> than matching against a few fields and the catch-all.
>
> - Toke Eskildsen

Reply via email to