Thank you Geert for correcting me. I tried by excluding "/" ( e.g.
product-reference/product-id/date) from path index and it is working fine.

Could you please give some more reasons/suggestions why should we not use
"/" or "//"?  as we tried with "/" & "//" and It was returning same result
as without these path separators.


Thank you!

On Mon, Apr 13, 2015 at 12:32 PM, Geert Josten <[email protected]>
wrote:

>  Just a small addition: the expression that you provide to path indexes
> does not have to start with / nor with //. Compare it with XSLT match
> expressions, as opposed to XSLT select expressions.
>
>  Kind regards,
> Geert
>
>   From: Indrajeet Verma <[email protected]>
> Reply-To: MarkLogic Developer Discussion <[email protected]>
> Date: Sunday, April 12, 2015 at 8:52 PM
> To: MarkLogic Developer Discussion <[email protected]>
> Subject: Re: [MarkLogic Dev General] How to find particular element using
> path index
>
>   Shashidhar - It's nice to hear that your problem solved. This should
> work with //product-reference/product-id/date as well. Main point is your
> path should point/return the value that you are trying to search/get.
>
>  As per my understanding this should be proper XPath that is searchable.
>
> On Mon, Apr 13, 2015 at 1:11 AM, Shashidhar Rao <
> [email protected]> wrote:
>
>>   Thanks Indrajeet for the code. But as I look into your range path
>> index admin ui configuration one thing I observed, you started from the
>> root element and whereas I started in the from product reference. Probably
>> you path is correct one i guess
>>
>>  Maybe this is where I got it wrong , but do you really have to start
>> from the root element say in this case I could start say
>> //product-reference/product-id/date .
>>
>>
>>  But yes I think I forgot that product id.
>>
>>  Thanks a lot
>>
>> On Mon, Apr 13, 2015 at 12:02 AM, Shashidhar Rao <
>> [email protected]> wrote:
>>
>>> 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
>
>
_______________________________________________
General mailing list
[email protected]
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to