Hi Sunny, And an example of the search-condition perhaps?
On a side track: where do start and end date come from? Kind regards, Geert > -----Oorspronkelijk bericht----- > Van: [email protected] [mailto:general- > [email protected]] Namens Sunny Wang01 > Verzonden: woensdag 9 mei 2012 11:35 > Aan: MarkLogic Developer Discussion > Onderwerp: Re: [MarkLogic Dev General] The value of @total is not right > > Hi, > The below is my one method, the index for search I have added. > > declare function local:get-search-result($search-condition as xs:string*, > $show-me as xs:string* , > $start-date as xs:string* , > $end-date as xs:string*, > $uris as xs:string*, > $page-size as xs:int , > $page as xs:int) as item()* > { > > (:--------------------------------construct the search condition -------------------------- > -----------:) > > let $collection:= > if($show-me eq ("Everything" , "All", "") or fn:empty($show-me)) > then > cts:collection- > query(("ResourceCollection","FileCollection","CourseCollection")) > else cts:collection-query("CourseCollection") > > let $options:= <search:options> > <search:constraint name="modified-date"> > <search:range type="xs:dateTime"> > <search:element > ns="http://www.careered.com/Version" name="ModifiedDate"/> > <search:bucket ge={$start- > date} lt={$end-date} name="span"/> > </search:range> > </search:constraint> > <search:constraint name="created-date"> > <search:range type="xs:dateTime"> > <search:element > ns="http://www.careered.com/Metadata" name="CreateDate"/> > <search:bucket ge={$start- > date} lt={$end-date} name="span"/> > </search:range> > </search:constraint> > <search:operator name="sort"> > <search:state name="Title"> > <search:sort-order > direction="ascending" type="xs:string"> > <search:element > ns="http://www.careered.com/Metadata" name="Title" /> > </search:sort-order> > </search:state> > <search:state name="ModifiedDate"> > <search:sort-order > direction="descending" type="xs:dateTime"> > <search:element > ns="http://www.careered.com/Version" name="ModifiedDate" /> > </search:sort-order> > </search:state> > <search:state name="CreateDate"> > <search:sort-order > direction="descending" type="xs:dateTime"> > <search:element > ns="http://www.careered.com/Metadata" name="CreateDate" /> > </search:sort-order> > </search:state> > <search:state name="Institution"> > <search:sort-order > direction="ascending" type="xs:string"> > <search:element > ns="http://www.careered.com/CourseElement" name="Institution" /> > </search:sort-order> > </search:state> > </search:operator> > <search:constraint name="Description"> > <search:word> > <search:element > ns="http://www.careered.com/Metadata" name="Description"/> > </search:word> > </search:constraint> > <search:constraint name="Category"> > <search:word> > <search:element > ns="http://www.careered.com/CourseElement" name="Category"/> > </search:word> > </search:constraint> > <search:constraint name="Title"> > <search:word> > <search:element > ns="http://www.careered.com/Metadata" name="Title"/> > </search:word> > </search:constraint> > <search:constraint name="CourseCode"> > <search:value> > <search:element > ns="http://www.careered.com/CourseElement" name="CourseCode"/> > </search:value> > </search:constraint> > <search:constraint name="ID"> > <search:value> > <search:element > ns="http://www.careered.com/Metadata" name="ID"/> > </search:value> > </search:constraint> > <search:constraint name="Keywords"> > <search:word> > <search:element > ns="http://www.careered.com/Metadata" name="Keywords"/> > </search:word> > </search:constraint> > <search:constraint name="Author"> > <search:value> > <search:element > ns="http://www.careered.com/Metadata" name="Author"/> > </search:value> > </search:constraint> > <search:constraint name="Note"> > <search:word> > <search:element > ns="http://www.careered.com/Version" name="Note"/> > </search:word> > </search:constraint> > <search:constraint name="ModifiedBy"> > <search:value> > <search:element > ns="http://www.careered.com/Version" name="ModifiedBy"/> > </search:value> > </search:constraint> > <search:constraint name="Language"> > <search:value> > <search:element > ns="http://www.careered.com/Metadata" name="Language"/> > </search:value> > </search:constraint> > <search:constraint name="FileType"> > <search:value> > <search:element > ns="http://www.careered.com/CourseElement" name="FileType"/> > </search:value> > </search:constraint> > <search:constraint name="Identifier"> > <search:value> > <search:element > ns="http://www.careered.com/CourseElement" name="Identifier"/> > </search:value> > </search:constraint> > <search:constraint name="IsActive"> > <search:value> > <search:element > ns="http://www.careered.com/Metadata" name="IsActive"/> > </search:value> > </search:constraint> > <search:constraint name="Is3rdPartyContent"> > <search:value> > <search:element > ns="http://www.careered.com/CourseElement" name="Is3rdPartyContent"/> > </search:value> > </search:constraint> > <search:constraint name="ResourceType"> > <search:value> > <search:element > ns="http://www.careered.com/CourseElement" name="ResourceType"/> > </search:value> > </search:constraint> > <search:additional-query> > { > if(fn:empty($uris) or $uris eq "") > then () > else > cts:document- > query(($uris)) > } > </search:additional-query> > <search:additional- > query>{$collection}</search:additional-query> > <search:additional-query>{dls:documents- > query()}</search:additional-query> > <search:term-option>case- > insensitive</search:term-option> > <search:term- > option>wildcarded</search:term-option> > <search:term-option>diacritic- > insensitive</search:term-option> > </search:options> > > (:----------------------------------------get search result ----------------------------------- > --------:) > > return search:search($search-condition,$options,$page-size * ($page - > 1)+1,$page-size) > > }; > > > Thanks, > Sunny Wang01 > > > -----Original Message----- > From: [email protected] [mailto:general- > [email protected]] On Behalf Of Geert Josten > Sent: 2012年5月9日 16:30 > To: MarkLogic Developer Discussion > Subject: Re: [MarkLogic Dev General] The value of @total is not right > > Hi Sunny, > > That is a known 'issue'. It is because search results are counted in so-called > 'unfiltered' mode for performance reasons. It uses xdmp:estimate under the > hood. Apparently you are doing a search that requires filtering of search results. > Can you give some more details about your search query? > > Kind regards, > Geert > > > -----Oorspronkelijk bericht----- > > Van: [email protected] [mailto:general- > > [email protected]] Namens Sunny Wang01 > > Verzonden: woensdag 9 mei 2012 9:40 > > Aan: MarkLogic Developer Discussion > > Onderwerp: [MarkLogic Dev General] The value of @total is not right > > > > Hi, > > > > Could you help to resolve the below issue? > > > > Using search:search in the Marklogic retrieve the search result, but > > the > returned > > value @total is sometimes bigger than the real count of search > > result, > it makes > > the pagination doesn't work correctly. > > > > Thanks, > > Sunny Wang01 > > > > **************** CAUTION - Disclaimer ***************** This e-mail > > contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely for > > the use of the addressee(s). If you are not the intended recipient, > please > > notify the sender by e-mail and delete the original message. Further, > you are not > > to copy, disclose, or distribute this e-mail or its contents to any > other person and > > any such actions are unlawful. This e-mail may contain viruses. > > Infosys > has taken > > every reasonable precaution to minimize this risk, but is not liable > > for > any > > damage > > you may sustain as a result of any virus in this e-mail. You should > carry out your > > own virus checks before opening the e-mail or attachment. Infosys > reserves the > > right to monitor and review the content of all messages sent to or > > from > this e- > > mail > > address. Messages sent to or from this e-mail address may be stored on > the > > Infosys e-mail system. > > ***INFOSYS******** End of Disclaimer ********INFOSYS*** > > _______________________________________________ > > 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 _______________________________________________ General mailing list [email protected] http://developer.marklogic.com/mailman/listinfo/general
