Shashidhar - I think, your path range index is not right.

I did below steps and showing result. Please see if this helps.

XML-
-------
<product>
  <product-reference>
    <product-id>
      <country>IND</country>
      <product-number>AA-503</product-number>
      <product-type>apparel</product-type>
      <date>20130105</date>
    </product-id>
  </product-reference>
  <store-reference>
    <store-id>
      <country>JP</country>
      <store-number>8369</store-number>
      <date>20120906</date>
    </store-id>
  </store-reference>
</product>



CODE-
----------
import module namespace search = "http://marklogic.com/appservices/search";
    at "/MarkLogic/appservices/search/search.xqy";

declare variable $OPTIONS :=
 <options xmlns="http://marklogic.com/appservices/search";>
     <values name="datepath">
         <range type="xs:string">
    <path-index>/product/product-reference/product-id/date</path-index>
       </range>
    </values>
    <return-values>true</return-values>
</options> ;

let $options :=
<options xmlns="http://marklogic.com/appservices/search";>
{$OPTIONS/*}
</options>
let $search-results := search:values('datepath', $options)
return $search-results

RESULT-
---------------
<values-response name="datepath" type="xs:string" xmlns="
http://marklogic.com/appservices/search"; xmlns:xs="
http://www.w3.org/2001/XMLSchema";>
  <distinct-value frequency="1">20130105</distinct-value>
  <metrics>
    <values-resolution-time>PT0.001S</values-resolution-time>
    <total-time>PT0.002S</total-time>
  </metrics>
</values-response>

Range Index-
---------------------

[image: Inline image 1]


On Mon, Apr 13, 2015 at 12:15 AM, Erik Hennum <[email protected]>
wrote:

>  Hi, Shashidhar:
>
> Does the configuration of the path index in the Admin UI specify the same
> data type (string with the same collation)?
>
> If so, it might be time to add <search:debug>true</search:debug> to the
> options and get the response with a string handle so you can see what's
> being executed on the server.
>
>
>   Erik Hennum
>
>    ------------------------------
> *From:* [email protected] [
> [email protected]] on behalf of Shashidhar Rao [
> [email protected]]
> *Sent:* Sunday, April 12, 2015 11:32 AM
> *To:* [email protected]
> *Subject:* Re: [MarkLogic Dev General] How to find particular element
> using path index
>
>   My search values in java code
>
> QueryOptionsManager optionsMgr = client.newServerConfigManager()
>                 .newQueryOptionsManager();
> String optionXml = "<search:options "
>                 + "xmlns:search='http://marklogic.com/appservices/search
> '>"
>                 + "<search:values name='datepath'>"
>                 + "<search:range collation='
> http://marklogic.com/collation/' type='xs:string'>"
>                 +
> "<search:path-index>/product-reference/date</search:path-index>" +
> "</search:range>"
>                 + "</search:values>" + "</search:options>";
>
>             StringHandle writeHandle = new StringHandle(optionXml);
>             optionsMgr.writeOptions("datepath", writeHandle);
>
>             QueryManager queryMgr = client.newQueryManager();
>             ValuesDefinition query = queryMgr.newValuesDefinition(
>                 "datepath","datepath");
>             ValuesHandle values = queryMgr.values(query, new
> ValuesHandle());
>
>           for (CountedDistinctValue value : values.getValues()) {
>             String textValue = value.get("xs:string", String.class);
>             System.out.println(textValue );
>           }
>
> On Sun, Apr 12, 2015 at 11:19 PM, Shashidhar Rao <
> [email protected]> wrote:
>
>>  Sorry that was a typo from my side and yes I created the path index in
>> admin ui
>> <constraint name='date'>
>>     <range collation='http://marklogic.com/collation/' type='xs:string'
>> facet='false'>
>>     <path-index>/product-reference/date</path-index>
>>        </range>
>>  </constraint>
>>  But still I could not get the results.
>>  Error : Local message: search failed: Bad Request. Server Message: null
>>
>>
>>
>> On Sun, Apr 12, 2015 at 9:43 PM, Shashidhar Rao <
>> [email protected]> wrote:
>>
>>>    Hi ,
>>> Below is the structure of my document. I want to find the date under the
>>> <product-reference> and not the date from the <store-reference>.
>>>
>>> XML-STRUCTURE
>>>
>>> <product-reference>
>>> <product-id>
>>> <country>IND</country>
>>> <product-number>AA-503</product-number>
>>> <product-type>apparel</product-type>
>>> <date>20130105</date>
>>> </product-id>
>>> </product-reference>
>>> <store-reference>
>>> <store-id>
>>> <country>JP</country>
>>> <store-number>8369</store-number>
>>> <date>20120906</date>
>>> </store-id>
>>> </store-reference>
>>>
>>>  I have create this optionsname as "date-product" and constraint as
>>>
>>> <constraint name='date'>
>>>     <range collation='http://marklogic.com/collation/' type='xs:string'
>>> facet='false'>
>>>     <path-index>/publication-reference/date</path-index>
>>>        </range>
>>>  </constraint>
>>>
>>>  JAVA CODE
>>>
>>>       QueryManager queryMgr = client.newQueryManager();
>>>         ValuesDefinition query =
>>> queryMgr.newValuesDefinition("date-product",
>>>                 "date");
>>>       ValuesHandle values = queryMgr.values(query, new ValuesHandle());
>>>
>>>         for (CountedDistinctValue value : values.getValues()) {
>>>             String textValue = value.get("xs:string", String.class);
>>>              System.out.println(textValue );
>>>         }
>>>  I am not getting any results.
>>>
>>>  Am I missing something or could somebody correct my code or help me
>>> with how to find values with path-index with range element index I am
>>> getting the results.
>>>
>>>  Thanks
>>>
>>>
>>>
>>
>
> _______________________________________________
> General mailing list
> [email protected]
> Manage your subscription at:
> http://developer.marklogic.com/mailman/listinfo/general
>
>
_______________________________________________
General mailing list
[email protected]
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to