I noticed there is an error trying to execute search REST API with the sort param containing a custom property (only if at least one result does not have this custom property).
Search REST API with the sort argument
http://localhost:8180/share/proxy/alfresco/slingshot/search/?filters=&encodedFilters=&term=pdf&sort=custom%3Atest%7Ctrue&site=&rootNode=alfresco%3A%2F%2Fcompany%2Fhome&repo=true
returns 0 results ("totalRecords": 3,"totalRecordsUpper": -1)
Without the sort param or with the OOTB sort param value, the request is correct (3 results). If every document has the custom property there is also no error.
I'm using Alfresco Community 7.1.1.2.
In the logs, I can see
docker-my-test-ass-1 | 2022-02-28 13:06:34.669 ERROR (qtp21257599-22) [ x:alfresco] o.a.s.s.HttpSolrCall null:java.lang.ArrayIndexOutOfBoundsException: Index 2 out of bounds for length 2 docker-my-test-ass-1 | at org.alfresco.solr.AlfrescoCollatableTextFieldType$TextSortFieldComparator.findBestValue(AlfrescoCollatableTextFieldType.java:182) docker-my-test-ass-1 | at org.alfresco.solr.AlfrescoCollatableTextFieldType$TextSortFieldComparator.copy(AlfrescoCollatableTextFieldType.java:157) docker-my-test-ass-1 | at org.apache.lucene.search.TopFieldCollector$SimpleFieldCollector$1.collect(TopFieldCollector.java:141) docker-my-test-ass-1 | at org.apache.lucene.search.MultiCollector$MultiLeafCollector.collect(MultiCollector.java:174) docker-my-test-ass-1 | at org.apache.solr.search.DelegatingCollector.collect(DelegatingCollector.java:72) docker-my-test-ass-1 | at org.apache.lucene.search.Weight$DefaultBulkScorer.scoreAll(Weight.java:246) docker-my-test-ass-1 | at org.apache.lucene.search.Weight$DefaultBulkScorer.score(Weight.java:197) docker-my-test-ass-1 | at org.apache.lucene.search.BulkScorer.score(BulkScorer.java:39) docker-my-test-ass-1 | at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:668) docker-my-test-ass-1 | at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:472) docker-my-test-ass-1 | at org.apache.solr.search.SolrIndexSearcher.buildAndRunCollectorChain(SolrIndexSearcher.java:217) docker-my-test-ass-1 | at org.apache.solr.search.SolrIndexSearcher.getDocListAndSetNC(SolrIndexSearcher.java:1678) docker-my-test-ass-1 | at org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1395) docker-my-test-ass-1 | at org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:566) docker-my-test-ass-1 | at org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:545) docker-my-test-ass-1 | at org.apache.solr.handler.component.AlfrescoSearchHandler.handleRequestBody(AlfrescoSearchHandler.java:376) docker-my-test-ass-1 | at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:173) docker-my-test-ass-1 | at org.apache.solr.core.SolrCore.execute(SolrCore.java:2477) docker-my-test-ass-1 | at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:723) docker-my-test-ass-1 | at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:529) docker-my-test-ass-1 | at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:361) docker-my-test-ass-1 | at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:305) docker-my-test-ass-1 | at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759) docker-my-test-ass-1 | at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583) docker-my-test-ass-1 | at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) docker-my-test-ass-1 | at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) docker-my-test-ass-1 | at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) docker-my-test-ass-1 | at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) docker-my-test-ass-1 | at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:513) docker-my-test-ass-1 | at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) docker-my-test-ass-1 | at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) docker-my-test-ass-1 | at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) docker-my-test-ass-1 | at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213) docker-my-test-ass-1 | at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119) docker-my-test-ass-1 | at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) docker-my-test-ass-1 | at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335) docker-my-test-ass-1 | at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) docker-my-test-ass-1 | at org.eclipse.jetty.server.Server.handle(Server.java:539) docker-my-test-ass-1 | at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333) docker-my-test-ass-1 | at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) docker-my-test-ass-1 | at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) docker-my-test-ass-1 | at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) docker-my-test-ass-1 | at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) docker-my-test-ass-1 | at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) docker-my-test-ass-1 | at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) docker-my-test-ass-1 | at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) docker-my-test-ass-1 | at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) docker-my-test-ass-1 | at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) docker-my-test-ass-1 | at java.base/java.lang.Thread.run(Thread.java:829) docker-my-test-ass-1 |
My model:
<property name="custom:test"> <type>d:text</type> <mandatory>false</mandatory> <index enabled="true"> <atomic>true</atomic> <stored>false</stored> <tokenised>false</tokenised> <facetable>true</facetable> </index> </property>
Did you also validated the Search REST API, whether its failing for the same case:
Hello @abhinavmishra14
to be honest I do not think that URL in the docs is relevant. Wihout the sort argument it works. This URL is not created by myself, it is copied from the Browser Dev Tools while being on Alfresco Share Advanced Search after clicking "sort by" button.
It seems that in 7.x there are some serious bugs with the SOLR. Another one reported @angelborroy (MNT-22926)
And here is another one:
Ask for and offer help to other Alfresco Content Services Users and members of the Alfresco team.
Related links:
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.