David, Options are merged at the level of $options/search:*, so by defining the grammar as you've shown below, you've lost the rest of the grammar.
Try this (assuming it's in the http://marklogic.com/appservices/search namespace): <grammar> <quotation>"</quotation> <starter strength="30" apply="grouping" delimiter=")">(</starter> <starter strength="40" apply="prefix" element="cts:not-query">-</starter> <joiner strength="10" apply="infix" element="cts:or-query" tokenize="word">OR</joiner> <joiner strength="20" apply="infix" element="cts:and-query" tokenize="word">AND</joiner> <joiner strength="50" apply="constraint">|</joiner> </grammar> Note that you can get the default grammar to use as a starting point using this query: import module namespace search = "http://marklogic.com/appservices/search" at "/MarkLogic/appservices/search/search.xqy"; search:get-default-options()/search:grammar Cheers, --Colleen ________________________________________ From: [email protected] [[email protected]] On Behalf Of David Scott Gurney [[email protected]] Sent: Friday, October 02, 2009 9:25 AM To: [email protected] Subject: [MarkLogic Dev General] search:search <joiner> question I would like to change the default joiner string for a facet search. The default is the colon character “:” and I need some other character (or set or characters). I have tried adding a <grammar> element as follows: <grammar> <joiner strength="50" apply="facet">|</joiner> </grammar> This seems to follow the documentation for changing this value. http://developer.marklogic.com/pubs/4.1/apidocs/SearchAPI.html#search:search I get the error shown below which seems to indicate that the “facet” value of the apply attribute is not correct. Could someone send me a sample of how to change the joiner string? Thanks David [1.0-ml] SEARCH-APPLYUNDEFINED: (err:FOER0000) Value of @apply undefined: facet Stack trace: in /MarkLogic/appservices/search/search-impl.xqy line 380: impl:joiner-dispatch((<tok type="term" from="1">series</tok>, <tok type="joiner" from="7"><joiner strength="50" apply="facet" xmlns="http://marklogic.com/...</tok>, <tok type=<http://marklogic.com/...%3c/tok%3e,%20%3ctok%20type=>"term" from="8">Documents</tok>, ...), 2, <cts:word-query qtextref="cts:text" xmlns:cts="http://marklogic.com/cts"><cts:text>series</cts:text><cts:option>case-insensitive</cts:opt...</cts:word-query>, <options xmlns="http://marklogic.com/appservices/search"><page-length>5</page-length><constraint name="series"><range col...</options>) $toks := (<tok type="term" from="1">series</tok>, <tok type="joiner" from="7"><joiner strength="50" apply="facet" xmlns="http://marklogic.com/...</tok>, <tok type=<http://marklogic.com/...%3c/tok%3e,%20%3ctok%20type=>"term" from="8">Documents</tok>, ...) $toknum := 2 $left := <cts:word-query qtextref="cts:text" xmlns:cts="http://marklogic.com/cts"><cts:text>series</cts:text><cts:option>case-insensitive</cts:opt...</cts:word-query> $stab := <options xmlns="http://marklogic.com/appservices/search"><page-length>5</page-length><constraint name="series"><range col...</options> $symbol := <joiner strength="50" apply="facet" xmlns="http://marklogic.com/appservices/search">|</joiner> $fname := attribute{QName("", "apply")}{"facet"} in /MarkLogic/appservices/search/search-impl.xqy line 322: impl:inner-expression((<tok type="term" from="1">series</tok>, <tok type="joiner" from="7"><joiner strength="50" apply="facet" xmlns="http://marklogic.com/...</tok>, <tok type=<http://marklogic.com/...%3c/tok%3e,%20%3ctok%20type=>"term" from="8">Documents</tok>, ...), 2, <cts:word-query qtextref="cts:text" xmlns:cts="http://marklogic.com/cts"><cts:text>series</cts:text><cts:option>case-insensitive</cts:opt...</cts:word-query>, <options xmlns="http://marklogic.com/appservices/search"><page-length>5</page-length><constraint name="series"><range col...</options>, 0) $toks := (<tok type="term" from="1">series</tok>, <tok type="joiner" from="7"><joiner strength="50" apply="facet" xmlns="http://marklogic.com/...</tok>, <tok type=<http://marklogic.com/...%3c/tok%3e,%20%3ctok%20type=>"term" from="8">Documents</tok>, ...) $toknum := 2 $left := <cts:word-query qtextref="cts:text" xmlns:cts="http://marklogic.com/cts"><cts:text>series</cts:text><cts:option>case-insensitive</cts:opt...</cts:word-query> $stab := <options xmlns="http://marklogic.com/appservices/search"><page-length>5</page-length><constraint name="series"><range col...</options> $rbp := 0 $lbp := xs:double("50") in /MarkLogic/appservices/search/search-impl.xqy line 314: impl:expression((<tok type="term" from="1">series</tok>, <tok type="joiner" from="7"><joiner strength="50" apply="facet" xmlns="http://marklogic.com/...</tok>, <tok type=<http://marklogic.com/...%3c/tok%3e,%20%3ctok%20type=>"term" from="8">Documents</tok>, ...), 1, <options xmlns="http://marklogic.com/appservices/search"><page-length>5</page-length><constraint name="series"><range col...</options>, 0) $toks := (<tok type="term" from="1">series</tok>, <tok type="joiner" from="7"><joiner strength="50" apply="facet" xmlns="http://marklogic.com/...</tok>, <tok type=<http://marklogic.com/...%3c/tok%3e,%20%3ctok%20type=>"term" from="8">Documents</tok>, ...) $toknum := 1 $stab := <options xmlns="http://marklogic.com/appservices/search"><page-length>5</page-length><constraint name="series"><range col...</options> $rbp := 0 $pair := (2, <cts:word-query qtextref="cts:text" xmlns:cts="http://marklogic.com/cts"><cts:text>series</cts:text><cts:option>case-insensitive</cts:opt...</cts:word-query>) in /MarkLogic/appservices/search/search-impl.xqy line 292: impl:expressions((<tok type="term" from="1">series</tok>, <tok type="joiner" from="7"><joiner strength="50" apply="facet" xmlns="http://marklogic.com/...</tok>, <tok type=<http://marklogic.com/...%3c/tok%3e,%20%3ctok%20type=>"term" from="8">Documents</tok>, ...), 1, <options xmlns="http://marklogic.com/appservices/search"><page-length>5</page-length><constraint name="series"><range col...</options>, 0, "") $toks := (<tok type="term" from="1">series</tok>, <tok type="joiner" from="7"><joiner strength="50" apply="facet" xmlns="http://marklogic.com/...</tok>, <tok type=<http://marklogic.com/...%3c/tok%3e,%20%3ctok%20type=>"term" from="8">Documents</tok>, ...) $toknum := 1 $stab := <options xmlns="http://marklogic.com/appservices/search"><page-length>5</page-length><constraint name="series"><range col...</options> $rbp := 0 $until := "" in /MarkLogic/appservices/search/search-impl.xqy line 270: impl:do-parse((<tok type="term" from="1">series</tok>, <tok type="joiner" from="7"><joiner strength="50" apply="facet" xmlns="http://marklogic.com/...</tok>, <tok type=<http://marklogic.com/...%3c/tok%3e,%20%3ctok%20type=>"term" from="8">Documents</tok>, ...), <options xmlns="http://marklogic.com/appservices/search"><page-length>5</page-length><constraint name="series"><range col...</options>, 0) $toks := (<tok type="term" from="1">series</tok>, <tok type="joiner" from="7"><joiner strength="50" apply="facet" xmlns="http://marklogic.com/...</tok>, <tok type=<http://marklogic.com/...%3c/tok%3e,%20%3ctok%20type=>"term" from="8">Documents</tok>, ...) $stab := <options xmlns="http://marklogic.com/appservices/search"><page-length>5</page-length><constraint name="series"><range col...</options> $pos := 0 $toknum := 1 in /MarkLogic/appservices/search/search-impl.xqy line 254: impl:parse((<tok type="term" from="1">series</tok>, <tok type="joiner" from="7"><joiner strength="50" apply="facet" xmlns="http://marklogic.com/...</tok>, <tok type=<http://marklogic.com/...%3c/tok%3e,%20%3ctok%20type=>"term" from="8">Documents</tok>, ...), <options xmlns="http://marklogic.com/appservices/search"><page-length>5</page-length><constraint name="series"><range col...</options>, 0) $toks := (<tok type="term" from="1">series</tok>, <tok type="joiner" from="7"><joiner strength="50" apply="facet" xmlns="http://marklogic.com/...</tok>, <tok type=<http://marklogic.com/...%3c/tok%3e,%20%3ctok%20type=>"term" from="8">Documents</tok>, ...) $stab := <options xmlns="http://marklogic.com/appservices/search"><page-length>5</page-length><constraint name="series"><range col...</options> $pos := 0 in /MarkLogic/appservices/search/search-impl.xqy line 265: impl:do-tokenize-parse("series|Documents", <options xmlns="http://marklogic.com/appservices/search"><page-length>5</page-length><constraint name="series"><range col...</options>, false()) $qtexts := "series|Documents" $options := <options xmlns="http://marklogic.com/appservices/search"><page-length>5</page-length><constraint name="series"><range col...</options> $incomplete := false() $incomplete := false() $options := <options xmlns="http://marklogic.com/appservices/search"><page-length>5</page-length><constraint name="series"><range col...</options> in /MarkLogic/appservices/search/search-impl.xqy line 829: impl:do-query("series|Documents", <options xmlns="http://marklogic.com/appservices/search"><page-length>5</page-length><constraint name="series"><range col...</options>, (), xs:unsignedLong("1"), (), false()) $qtext := "series|Documents" $deltaoptions := <options xmlns="http://marklogic.com/appservices/search"><page-length>5</page-length><constraint name="series"><range col...</options> $ctsquery := () $start := xs:unsignedLong("1") $page-length := () $raw-results := false() $t-minus-0 := xs:dayTimeDuration("PT0.001S") $init-options := <options xmlns="http://marklogic.com/appservices/search"><page-length>5</page-length><constraint name="series"><range col...</options> in /MarkLogic/appservices/search/search.xqy line 35: search:search("series|Documents", <options xmlns="http://marklogic.com/appservices/search"><page-length>5</page-length><constraint name="series"><range col...</options>, 1) $qtext := "series|Documents" $options := <options xmlns="http://marklogic.com/appservices/search"><page-length>5</page-length><constraint name="series"><range col...</options> $start := xs:unsignedLong("1") NOTICE: This email message is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. _______________________________________________ General mailing list [email protected] http://xqzone.com/mailman/listinfo/general
