I am attempting to do a search on a specific element so I have a searchable-expression within my options. I also want to sort by the values of this element so I have created an element range index on the value element. Here are my search options which hopefully makes things clear:
<options xmlns="http://marklogic.com/appservices/search">
<term>
<term-option>case-insensitive</term-option>
</term>
<debug>true</debug>
<searchable-expression>/summary/name/value</searchable-expression>
<sort-order type="xs:string" direction="ascending">
<element ns="" name="value"/>
<annotation>options for search institutions by name</annotation>
</sort-order>
</options>
The problem is that when it does the sort it adds another value node (Taken from search:report id="SEARCH-FLWOR")
...order by xs:string(($result//value)[1]) ascending return $result)[1 to 50]
Instead of:
...order by xs:string(($result)[1]) ascending return $result)[1 to 50]
How do I prevent it doing this? I cannot change the searchable expression as the "name" element has another child element which I do not wish to search across. I also I can not leave the sort-order element name blank or set it to current node. It seems this would be simple, but I have not found anything to get this working.
Help would be greatly appreciated.
You can use <name>
as the target element of the searchable expression, but then restrict the query to only look inside <value>
by adding an <additional-query>
:
<options xmlns="http://marklogic.com/appservices/search">
<term>
<term-option>case-insensitive</term-option>
</term>
<debug>true</debug>
<searchable-expression>/summary/name</searchable-expression>
<additional-query>
<cts:element-query xmlns:cts="http://marklogic.com/cts">
<cts:element>value</cts:element>
<cts:and-query/>
</cts:element-query>
</additional-query>
<sort-order type="xs:string" direction="ascending">
<element ns="" name="value"/>
<annotation>options for search institutions by name</annotation>
</sort-order>
</options>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With