Just want to add this. The problem isn't so much in saying "find A and B in the same element", the problem is when the distance is greater than zero as in "find A and B separated by two elements". In the OASIS spec, the notion of element is discarded and the more abstract notion of "container" is defined, and you can "find A and B in the same container" (with no notion of finding A and B separated by, say, two containers). --Ray
From: SRU (Search and Retrieve Via URL) Implementors [mailto:[log in to unmask]] On Behalf Of Peter Noerr
Sent: Friday, July 02, 2010 6:53 PM
To: [log in to unmask]
Subject: Re: CQL example for prox/unit=
This is where the complexity of the example got in the way of understanding.
Taking the original
zeerex.set = cql prox/unit=element/distance=0 zeerex.index = resultSetId
I mentally parsed it as
cql prox/unit element/distance=0 zeerex.index
not as Mike parses it below. I was looking for examples illustrating the proximity modifiers and so looked for a "conventional" proximity search of the form "term prox(modifier) term". This structure I found, and then could not make any sense of the two "appendages". All to do with mental models.
However, since Ray has pointed out this is an obsolete page (thought he first one appearing on the WSEs, and there are only 2 other mentions of this meaning of CQL in the top 50 hits on Bing, by the way - both about v1.1 However "cql oasis" does much better.), the question is a bit moot.
Thanks for the answers.
> -----Original Message-----
> From: SRU (Search and Retrieve Via URL) Implementors [mailto:[log in to unmask]] On Behalf Of Mike
> Sent: Friday, July 02, 2010 2:55 PM
> To: [log in to unmask]
> Subject: Re: CQL example for prox/unit=
> "unit=element/distance=0" means "in the same element as", where the
> meaning of element is rather fuzzy and servers are expected to To The
> Right Thing. So the query:
> zeerex.set = cql
> zeerex.index = resultSetId
> means to find records in which a single element mentions both the CQL
> content set and the (unqualified) resultSetId index -- that is, the
> qualified index cql.resultSetid.
> On 2 July 2010 22:22, Peter Noerr <[log in to unmask]> wrote:
> > For my sins I have been trying to rationalize our internal proximity search representations, and
> thought comparison with CQL would be instructive. I finally found "prox" as a Boolean operator (not my
> choice, but that is not the issue here). To be sure I understood things I went through the definitions
> and then the examples. All was well until the very last example on the very last page (ok, the second
> page – but the last one).
> > So at http://www.loc.gov/standards/sru/resources/cql-context-set-v1-2.html is the example:
> > zeerex.set = cql prox/unit=element/distance=0 zeerex.index = resultSetId
> > Find the cql context set in the same element as the index name resultSetId. E.g. search for
> > My reading suggests this is a search for "cql.zeerex.index", not "cql.resultSetId". If the example
> is correct as it stands could somebody explain how/why. And also explain why the example has
> "zeerex.set =" on the beginning and "= resultSetId" on the end, when these really have nothing to do
> with the "unit=element/distance=0" that the example is trying to clarify. This is the only example so
> encumbered, and it has, obviously, managed to confuse me.
> > Peter