You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by elisabeth benoit <el...@gmail.com> on 2012/01/11 15:47:50 UTC

catchall field minus one field

Hello,

I have a catchall field, and I need to do some request in all fields of
that catchall field, minus one. To avoid duplicating my index, I'd like to
know if there is a way to use my catch field while excluding that one field.

Thanks,
Elisabeth

Re: catchall field minus one field

Posted by elisabeth benoit <el...@gmail.com>.
thanks a lot for your advice, I'll try that.

Best regards,
Elisabeth

2012/1/11 Erick Erickson <er...@gmail.com>

> Hmmm, Once the data is included in the catch-all, it's indistinguishable
> from
> all the rest of the data, so I don't see how you could do this. A clause
> like:
> -excludeField:[* TO *] would exclude all documents that had any data in
> the field so that's probably not what you want.....
>
> Could you approach it the other way? Do NOT put the special field in
> the catch-all field in the first place, but massage the input to add
> a clause there? I.e. your "usual" case would have
> catchall:<all your terms> exclude_field:<all your terms>, but your
> special one would just be catchall:<all your terms>.
>
> You could set up request handlers to do this under the covers, so your
> queries would really be
> ...solr/usual?q=<all your terms>
> ...solr/special?q=<all your terms>
> and two different request handlers (edismax-style I'm thinking)
> would differ only by the "qf" field containing or not containing
> your special field.....
>
> the other way, of course, would be to have a second catch-all
> field that didn't have your special field, then use one or the other
> depending, but as you say that would increase the size of your
> index...
>
> Best
> Erick
>
> On Wed, Jan 11, 2012 at 9:47 AM, elisabeth benoit
> <el...@gmail.com> wrote:
> > Hello,
> >
> > I have a catchall field, and I need to do some request in all fields of
> > that catchall field, minus one. To avoid duplicating my index, I'd like
> to
> > know if there is a way to use my catch field while excluding that one
> field.
> >
> > Thanks,
> > Elisabeth
>

Re: catchall field minus one field

Posted by Erick Erickson <er...@gmail.com>.
Hmmm, Once the data is included in the catch-all, it's indistinguishable from
all the rest of the data, so I don't see how you could do this. A clause like:
-excludeField:[* TO *] would exclude all documents that had any data in
the field so that's probably not what you want.....

Could you approach it the other way? Do NOT put the special field in
the catch-all field in the first place, but massage the input to add
a clause there? I.e. your "usual" case would have
catchall:<all your terms> exclude_field:<all your terms>, but your
special one would just be catchall:<all your terms>.

You could set up request handlers to do this under the covers, so your
queries would really be
...solr/usual?q=<all your terms>
...solr/special?q=<all your terms>
and two different request handlers (edismax-style I'm thinking)
would differ only by the "qf" field containing or not containing
your special field.....

the other way, of course, would be to have a second catch-all
field that didn't have your special field, then use one or the other
depending, but as you say that would increase the size of your
index...

Best
Erick

On Wed, Jan 11, 2012 at 9:47 AM, elisabeth benoit
<el...@gmail.com> wrote:
> Hello,
>
> I have a catchall field, and I need to do some request in all fields of
> that catchall field, minus one. To avoid duplicating my index, I'd like to
> know if there is a way to use my catch field while excluding that one field.
>
> Thanks,
> Elisabeth