Thanks Erik

On Sat, Feb 21, 2015 at 8:32 PM, Erik Hennum <[email protected]>
wrote:

>  Hi, Maisnam:
>
>  Your query options should defined a tuple in which the first column is a
> range index on the country and the second column is a range index on year.
>
>
> <options xmlns="http://marklogic.com/appservices/search";>
>     <tuples name="yearByCountry">
>         <range type="xs:string" collation="http://marklogic.com/collation/";>
>             <element ns="" name="country"/>
>         </range>
>         <range type="xs:gYear">
>             <element ns="" name="year"/>
>         </range>
>     </tuples>
> </options>
>
>
> After writing the "yearByCountry" query options to the server, you can then 
> use the options to request tuples from the range indexes:
>
>
> QueryManager queryMgr = dbClient.newQueryManager();
> TuplesHandle results =
>     queryMgr.tuples(queryMgr.newValuesDefinition("yearByCountry"), new 
> TuplesHandle());
> Tuple[] tuples = results.getTuples();
>
>
>  You can then iterate over the tuples to get the counts on the frequency
> of co-occurrence of each country and year.
>
>  For more information about defining tuples:
>
>  http://docs.marklogic.com/guide/rest-dev/appendixb#id_90089
> http://docs.marklogic.com/guide/rest-dev/search#id_24433
>
>  For more information about making a tuple request:
>
>
> http://docs.marklogic.com/javadoc/client/com/marklogic/client/query/QueryManager.html#newValuesDefinition(java.lang.String)
>
> http://docs.marklogic.com/javadoc/client/com/marklogic/client/query/QueryManager.html#tuples(com.marklogic.client.query.ValuesDefinition,%20T)
>
> http://docs.marklogic.com/javadoc/client/com/marklogic/client/query/Tuple.html#getCount()
>
>
>  Hoping that helps,
>
>
>  Erik Hennum
>
>    ------------------------------
> *From:* [email protected] [
> [email protected]] on behalf of Maisnam Ns [
> [email protected]]
> *Sent:* Saturday, February 21, 2015 12:02 AM
> *To:* MarkLogic Developer Discussion
> *Subject:* Re: [MarkLogic Dev General] JAVA API Query formation
>
>     Hi Eric,
>
>  Given this scenario:
> Let's say this is file 1 and there are 1000 such different files
> <info>
>   <company>ibm</company>
>   <year>2001</year>
>   <country>US</country>
> </info>
>
>  How do I get the count of years by country ='US' by using Java api
>
> 2001 - (20)
> 2002- (5)
>  2009 -(0)  etc
>
>  Thanks
>
>
>
> On Sat, Feb 21, 2015 at 1:27 AM, Maisnam Ns <[email protected]> wrote:
>
>> Thanks Eric for your help. Will try to use XMLStreamWriter.
>>
>>  On Fri, Feb 20, 2015 at 11:09 PM, Erik Hennum <[email protected]
>> > wrote:
>>
>>>   Hi, Maisnam:
>>>
>>> To get uncorrelated frequencies for three elements, you'll need to make
>>> three separate requests, one for each element.
>>>
>>> Just so you're aware, you can also request tuples for the three
>>> elements, but that request returns the frequencies for the
>>> co-occurrence of values in a document and not the individual frequencies
>>> for each element.
>>>
>>> By the way, the query options builder has been deprecated for several
>>> releases and could go away in any future release.  You should instead use a
>>> DOM (such as JDOM or XOM) or XMLStreamWriter to generate the options
>>> XML.
>>>
>>>
>>> Hoping that helps,
>>>
>>>
>>>   Erik Hennum
>>>
>>>    ------------------------------
>>> *From:* [email protected] [
>>> [email protected]] on behalf of Maisnam Ns [
>>> [email protected]]
>>> *Sent:* Friday, February 20, 2015 2:40 AM
>>> *To:* MarkLogic Developer Discussion
>>> *Subject:* [MarkLogic Dev General] JAVA API Query formation
>>>
>>>     Hi ,
>>>
>>>  Can someone help me with the JAVA API query formation for the below
>>> sample
>>>
>>>  Let's say this is file 1 and there are 1000 such different files
>>>  <info>
>>>   <company>ibm</company>
>>>   <year>2001</year>
>>>   <country>US</country>
>>> </info>
>>>
>>>  I just want to get the country, year and the count.
>>>
>>>  US 2001  70
>>>  US 2014   13
>>>  JAPAN 2000 10
>>>
>>>  Something like the above, I am able to get the count of only one
>>> element not two
>>>
>>> QueryOptionsHandle options = new QueryOptionsHandle().withValues(
>>>             qob.values("product",
>>>                     qob.range(
>>>                         qob.elementRangeIndex(new QName("country"),
>>>
>>> qob.stringRangeType(QueryOptions.DEFAULT_COLLATION))),
>>>                     "frequency-order"));
>>>  The above query gives me
>>>
>>>  US 190
>>>  CH  123
>>>  IND  70
>>>
>>>
>>>  Thanks
>>>
>>>
>>>
>>>  _______________________________________________
>>> General mailing list
>>> [email protected]
>>> http://developer.marklogic.com/mailman/listinfo/general
>>>
>>>
>>
>
> _______________________________________________
> General mailing list
> [email protected]
> http://developer.marklogic.com/mailman/listinfo/general
>
>
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to