lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Adrien Grand <jpou...@gmail.com>
Subject Re: Matching a single instance of a multivalued field
Date Fri, 08 Jun 2018 14:53:49 GMT
Hi Tom,

One way to solve this could be to use block joins by indexing each value in
its own document and joining the parent document using
ToParentBlockJoinQuery.

Le ven. 8 juin 2018 à 16:46, Tom Mortimer <tom@flax.co.uk> a écrit :

> Hi!
>
> I have a requirement to be able to restrict search results to a single
> instance of a multivalued field. e.g. with the doc:
>
>     text: [ "striped skunk", "spotted hyena" ]
>
> the queries (skunk AND striped), (spotted AND hyena) should return the
> document, but (striped AND hyena), (skunk AND spotted) should not.
>
> Can anyone give me any suggestions how to do this? I was thinking that
> setting a massive position increment gap between multiple values and then
> using a SpanNearQuery with a large (but smaller than the gap) slop might do
> the job, but the field values could be quite long (I don't know if there's
> a limit). Is there a neater way?
>
> cheers,
> Tom
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message