HI.
Since there are soo many ways to search, I am sure you'll get back plenty
of feedback. However, a few notes:
If I understand what you want, then I believe the cts search items are more
than robust - combination of and/or queries and field/element queries
depending on how your constraints are set up. The important key here is
that in most (if not all) instances of the $text parameter for these
queries accept *one or more terms *as input and are treated as "any term
matching". SO, you could have your terms in a sequence and pass this on as
the values.
something like this:
let list1:= ("dictionary", "encyclopedia")
let list2:= ("music", "musicology")
return cts:search(cts:and-query(
cts:element-value-query(xs:QName("title"), $list1),
cts:element-value-query(xs:QName("title), $list2)
))
This above will nto run as-is as you need to look at parameters for the
settings and perhaps you are searching on a field, etc- but should give you
a good primer on the begining ov building complex queries with CTS
###########
Separately, as a programmer, I see the issue as manageable in your current
use of the search:search approach.
Building up your parameters and then exploding them into strings with the
proper glue should give you some ease. What language are you preparing
your queries in?
Regards,
David
On 6 December 2013 00:49, Charles Greer <[email protected]> wrote:
> Hi Greg,
>
> If you want all prefixless searches to be scoped to a particular
> element, use the <term> configuration
>
> <term>
> <default>
> <word>
> <element ns="" name="title"/>
> </word>
> </default>
> </term>
>
> I don't see a way to do exactly what you're looking for however.
>
> Charles
>
>
> On 12/04/2013 11:27 AM, Murray, Gregory wrote:
> > I'm using the Search API, where it's easy enough to set up a word
> constraint for a given element and then use the key:value syntax to search
> only the values of that element, like so:
> >
> > <constraint name="title">
> > <word>
> > <element ns="http://example.com/ns" name="title"/>
> > </word>
> > </constraint>
> >
> > Then you can search for title:whatever to find titles containing the
> word "whatever". This works great, but it's cumbersome for multi-word
> searches. For example, if I want titles containing both "sound" and "fury",
> I have to search for this:
> >
> > title:sound title:fury
> >
> > It gets worse with situations like this:
> >
> > (title:encyclopedia OR title:dictionary) AND (title:music OR
> title:musicology)
> >
> > Before I dig into trying to customize the search grammar or some such --
> is there an easier way to perform a word search while applying the *entire*
> search expression only to a given element?
> >
> > Thanks,
> > Greg
> >
> > _______________________________________________
> > General mailing list
> > [email protected]
> > http://developer.marklogic.com/mailman/listinfo/general
>
> --
> Charles Greer
> Senior Engineer
> MarkLogic Corporation
> [email protected]
> Phone: +1 707 408 3277
> www.marklogic.com
>
> _______________________________________________
> General mailing list
> [email protected]
> http://developer.marklogic.com/mailman/listinfo/general
>
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general