[ https://issues.apache.org/jira/browse/SOLR-10231?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15907528#comment-15907528 ]
Dmitry Kan commented on SOLR-10231: ----------------------------------- [~hossman] thanks for clarifying and suggestions. Going to test the fixed timestamp value for the NOW param. In the meantime we falled back to non-cursor pagination method. Btw, would the same issue exist in 6.x? > Cursor value always different for last page with sorting by a date based > function using NOW > ------------------------------------------------------------------------------------------- > > Key: SOLR-10231 > URL: https://issues.apache.org/jira/browse/SOLR-10231 > Project: Solr > Issue Type: Bug > Security Level: Public(Default Security Level. Issues are Public) > Components: SearchComponents - other > Affects Versions: 4.10.2 > Reporter: Dmitry Kan > > Cursor based results fetching is a deal breaker for search performance. > It works extremely well when paging using sort by field(s). > Example, that works (Id is unique field in the schema): > Query: > {code} > http://solr-host:8983/solr/documents/select?q=*:*&fq=DocumentId:76581059&cursorMark=AoIGAAAAAC5TU1ItNzY1ODEwNTktMQ==&fl=DocumentId&sort=UserId+asc%2CId+desc&rows=1 > {code} > Response: > {code} > <response> > <lst name="responseHeader"> > <int name="status">0</int> > <int name="QTime">4</int> > <lst name="params"> > <str name="q">*:*</str> > <str name="fl">DocumentId</str> > <str name="cursorMark">AoIGAAAAAC5TU1ItNzY1ODEwNTktMQ==</str> > <str name="fq">DocumentId:76581059</str> > <str name="sort">UserId asc,Id desc</str> > <str name="rows">1</str> > </lst> > </lst> > <result name="response" numFound="1" start="0"/> > <str name="nextCursorMark">AoIGAAAAAC5TU1ItNzY1ODEwNTktMQ==</str> > </response> > {code} > nextCursorMark equals to cursorMark and so we know this is last page. > However, sorting by function behaves differently: > Query: > {code} > http://solr-host:8983/solr/documents/select?rows=1&q=*:*&fq=DocumentId:76581059&cursorMark=AoIFQf9yCCAAAAAuU1NSLTc2NTgxMDU5LTE=&fl=DocumentId&sort=min(ms(NOW,DynamicDateField_1),ms(NOW,DynamicDateField_12),ms(NOW,DynamicDateField_3),ms(NOW,DynamicDateField_5))%20asc,Id%20desc > {code} > Response: > {code} > <response> > <lst name="responseHeader"> > <int name="status">0</int> > <int name="QTime">6</int> > <lst name="params"> > <str name="q">*:*</str> > <str name="fl">DocumentId</str> > <str name="cursorMark">AoIFQf9yCCAAAAAuU1NSLTc2NTgxMDU5LTE=</str> > <str name="fq">DocumentId:76581059</str> > <str name="sort"> > min(ms(NOW,DynamicDateField_1),ms(NOW,DynamicDateField_12),ms(NOW,DynamicDateField_3),ms(NOW,DynamicDateField_5)) > asc,Id desc > </str> > <str name="rows">1</str> > </lst> > </lst> > <result name="response" numFound="1" start="0"> > <doc> > <str name="DocumentId">76581059</str> > </doc> > </result> > <str name="nextCursorMark">AoIFQf9yFyAAAAAuU1NSLTc2NTgxMDU5LTE=</str> > </response> > {code} > nextCursorMark does not equal to cursorMark, which suggests there are more > results. Which is not true (numFound=1). And so the client goes into infinite > loop. -- This message was sent by Atlassian JIRA (v6.3.15#6346) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org