[ 
https://issues.apache.org/jira/browse/SOLR-2266?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12967022#action_12967022
 ] 

Yonik Seeley commented on SOLR-2266:
------------------------------------

OK, here's my guess: it's probably due to multiple indexed values per field 
value.  ord/rord uses the StringIndex to get the ord values, which can't handle 
multiple indexed tokens per field value.

The "tdate" type has a precisionStep > 0, meaning it will index multiple values 
per field value to speed up range queries.
If you don't need faster range queries on this type, then use "date" instead of 
"tdate".

But the ideal fix here is to eliminate the use of ord/rord since they also use 
up more memory... sorting by "created" will instantiate a per-segment long[] 
FieldCache entry.
It would be nice if that could be reused for the function queries too.  This is 
the case if you use ms().
http://wiki.apache.org/solr/FunctionQuery#ms

> java.lang.ArrayIndexOutOfBoundsException in field cache when using a tdate 
> field in a boost function with rord()
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-2266
>                 URL: https://issues.apache.org/jira/browse/SOLR-2266
>             Project: Solr
>          Issue Type: Bug
>    Affects Versions: 1.4.1
>         Environment: Mac OS 10.6
> java version "1.6.0_22"
> Java(TM) SE Runtime Environment (build 1.6.0_22-b04-307-10M3261)
> Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03-307, mixed mode)
>            Reporter: Peter Wolanin
>
> I have been testing a switch to long and tdate instead of int and date fields 
> in the schema.xml for our Drupal integration.  This indexes fine, but search 
> fails with a 500 error.
> {code}
> INFO: [d7] webapp=/solr path=/select 
> params={spellcheck=true&facet=true&facet.mincount=1&indent=1&spellcheck.q=term&json.nl=map&wt=json&rows=10&version=1.2&fl=id,entity_id,entity,bundle,bundle_name,nid,title,comment_count,type,created,changed,score,path,url,uid,name&start=0&facet.sort=true&q=term&bf=recip(rord(created),4,19,19)^200.0}
>  status=500 QTime=4 
> Dec 5, 2010 11:52:28 AM org.apache.solr.common.SolrException log
> SEVERE: java.lang.ArrayIndexOutOfBoundsException: 39
>         at 
> org.apache.lucene.search.FieldCacheImpl$StringIndexCache.createValue(FieldCacheImpl.java:721)
>         at 
> org.apache.lucene.search.FieldCacheImpl$Cache.get(FieldCacheImpl.java:224)
>         at 
> org.apache.lucene.search.FieldCacheImpl.getStringIndex(FieldCacheImpl.java:692)
>         at 
> org.apache.solr.search.function.ReverseOrdFieldSource.getValues(ReverseOrdFieldSource.java:61)
>         at 
> org.apache.solr.search.function.TopValueSource.getValues(TopValueSource.java:57)
>         at 
> org.apache.solr.search.function.ReciprocalFloatFunction.getValues(ReciprocalFloatFunction.java:61)
>         at 
> org.apache.solr.search.function.FunctionQuery$AllScorer.<init>(FunctionQuery.java:123)
>         at 
> org.apache.solr.search.function.FunctionQuery$FunctionWeight.scorer(FunctionQuery.java:93)
>         at 
> org.apache.lucene.search.BooleanQuery$BooleanWeight.scorer(BooleanQuery.java:297)
>         at 
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:250)
>         at org.apache.lucene.search.Searcher.search(Searcher.java:171)
>         at 
> org.apache.solr.search.SolrIndexSearcher.getDocListAndSetNC(SolrIndexSearcher.java:1101)
>         at 
> org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:880)
>         at 
> org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:341)
>         at 
> org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:182)
>         at 
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:195)
>         at 
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
>         at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316)
>         at 
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338)
>         at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241)
>         at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
>         at com.acquia.search.HmacFilter.doFilter(HmacFilter.java:62)
>         at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
>         at 
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
>         at 
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>         at 
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>         at 
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
>         at 
> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
>         at 
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
>         at 
> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
>         at 
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
>         at org.mortbay.jetty.Server.handle(Server.java:285)
>         at 
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
>         at 
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:821)
>         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:513)
>         at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:208)
>         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:378)
>         at 
> org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:226)
>         at 
> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
> {code}
> The exception goes away if I remove the boost function param 
> bf=recip(rord(created),4,19,19)^200.0
> Omitting the recip() doesn't help, so just bf=rord(created)^200.0 still 
> causes the exception.
> In this schema, 
> {code}
>  <field name="created" type="tdate" indexed="true" stored="true"/>
> {code}
> In the prior schema:
> {code}
>  <field name="created" type="date" indexed="true" stored="true"/>
> {code}
> This seems somewhat related to:  SOLR-324 which is marked as fixed.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to