Re: FieldCache error for multivalued fields in json facets.
Hi I am using solr 5.3 and I have the same problem while doing json facet on multivalued field. Below is the error stack trace : 2015-09-21 21:26:09,292 ERROR org.apache.solr.core.SolrCore ? org.apache.solr.common.SolrException: can not use FieldCache on multivalued field: FLAG at org.apache.solr.schema.SchemaField.checkFieldCacheSource(SchemaField.java:187) at org.apache.solr.schema.TrieField.getValueSource(TrieField.java:231) at org.apache.solr.search.FunctionQParser.parseValueSource(FunctionQParser.java:378) at org.apache.solr.search.FunctionQParser.parseValueSource(FunctionQParser.java:235) at org.apache.solr.search.ValueSourceParser$79.parse(ValueSourceParser.java:845) at org.apache.solr.search.FunctionQParser.parseAgg(FunctionQParser.java:414) at org.apache.solr.search.facet.FacetParser.parseStringStat(FacetRequest.java:272) at org.apache.solr.search.facet.FacetParser.parseStringFacetOrStat(FacetRequest.java:265) at org.apache.solr.search.facet.FacetParser.parseFacetOrStat(FacetRequest.java:199) at org.apache.solr.search.facet.FacetParser.parseSubs(FacetRequest.java:179) at org.apache.solr.search.facet.FacetTopParser.parse(FacetRequest.java:427) at org.apache.solr.search.facet.FacetTopParser.parse(FacetRequest.java:416) at org.apache.solr.search.facet.FacetModule.prepare(FacetModule.java:125) at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:251) at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143) at org.apache.solr.core.SolrCore.execute(SolrCore.java:2068) at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:669) at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:462) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:210) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:179) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1521) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1478) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) -- View this message in context: http://lucene.472066.n3.nabble.com/FieldCache-error-for-multivalued-fields-in-json-facets-tp4216995p4230304.html Sent from the Solr - User mailing list archive at Nabble.com.
Re: FieldCache error for multivalued fields in json facets.
Yonik, Upayavira, thanks for response. Here is the stacktrace from solr logs. I can make my field single valued, but are there any plans to fix this or in general mulitvalued fields should not be used for metric calculation ? what about other metrics, e.g. avg, min,max -- should I be able to calculate them on multivalued fields? org.apache.solr.common.SolrException: can not use FieldCache on multivalued field: sales at org.apache.solr.schema.SchemaField.checkFieldCacheSource(SchemaField.java:187) at org.apache.solr.schema.TrieField.getValueSource(TrieField.java:236) at org.apache.solr.search.FunctionQParser.parseValueSource(FunctionQParser.java:378) at org.apache.solr.search.FunctionQParser.parseValueSource(FunctionQParser.java:235) at org.apache.solr.search.ValueSourceParser$79.parse(ValueSourceParser.java:832) at org.apache.solr.search.FunctionQParser.parseAgg(FunctionQParser.java:414) at org.apache.solr.search.facet.FacetParser.parseStringStat(FacetRequest.java:522) at org.apache.solr.search.facet.FacetParser.parseStringFacetOrStat(FacetRequest.java:515) at org.apache.solr.search.facet.FacetParser.parseFacetOrStat(FacetRequest.java:449) at org.apache.solr.search.facet.FacetParser.parseSubs(FacetRequest.java:429) at org.apache.solr.search.facet.FacetFieldParser.parse(FacetRequest.java:728) at org.apache.solr.search.facet.FacetParser.parseFieldFacet(FacetRequest.java:500) at org.apache.solr.search.facet.FacetParser.parseFacetOrStat(FacetRequest.java:486) at org.apache.solr.search.facet.FacetParser.parseFacetOrStat(FacetRequest.java:479) at org.apache.solr.search.facet.FacetParser.parseSubs(FacetRequest.java:429) at org.apache.solr.search.facet.FacetTopParser.parse(FacetRequest.java:646) at org.apache.solr.search.facet.FacetTopParser.parse(FacetRequest.java:635) at org.apache.solr.search.facet.FacetModule.prepare(FacetModule.java:125) at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:229) at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143) at org.apache.solr.core.SolrCore.execute(SolrCore.java:2064) at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:654) at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:450) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:227) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:196) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handle(Server.java:497) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) at java.lang.Thread.run(Thread.java:745) 2015-07-13 19:24 GMT+03:00 Yonik Seeley : > On Mon, Jul 13, 2015 at 1:55 AM, Iana Bondarska > wrote: > > Hi, > > I'm using json query api for solr 5.2. When query for metrics for > > multivalued fields, I get error: > > can not use FieldCache on multivalued field: sales. > > > > I've found in solr wiki that to avoid using fieldcache I should set > > facet.method parameter to "enum". > > Now my question is how can I add facet.enum parameter to query? > > My original query looks like this: > > > {"limit":0,"offset":0,"facet":{"facet":{"facet":{"mechanicnumbers_sum":"sum(sales)"},"
Re: FieldCache error for multivalued fields in json facets.
On Mon, Jul 13, 2015 at 1:55 AM, Iana Bondarska wrote: > Hi, > I'm using json query api for solr 5.2. When query for metrics for > multivalued fields, I get error: > can not use FieldCache on multivalued field: sales. > > I've found in solr wiki that to avoid using fieldcache I should set > facet.method parameter to "enum". > Now my question is how can I add facet.enum parameter to query? > My original query looks like this: > {"limit":0,"offset":0,"facet":{"facet":{"facet":{"mechanicnumbers_sum":"sum(sales)"},"limit":0,"field":"brand","type":"terms"}}} sum(field) is currently only implemented for single-valued numeric fields. Can you make the sales field single-valued, or do you actually need multiple values per document? -Yonik
Re: FieldCache error for multivalued fields in json facets.
On Mon, Jul 13, 2015, at 06:55 AM, Iana Bondarska wrote: > Hi, > I'm using json query api for solr 5.2. When query for metrics for > multivalued fields, I get error: > can not use FieldCache on multivalued field: sales. > > I've found in solr wiki that to avoid using fieldcache I should set > facet.method parameter to "enum". > Now my question is how can I add facet.enum parameter to query? > My original query looks like this: > {"limit":0,"offset":0,"facet":{"facet":{"facet":{"mechanicnumbers_sum":"sum(sales)"},"limit":0,"field":"brand","type":"terms"}}} > > Adding method:enum inside facet doesn't help. Adding facet.method=enum > outside json parameter also doesn't help. Can you provide the whole exception, including stack trace? This looks like a bug to me, as it should switch to using the FieldValueCache for multivalued fields rather than fail to use the FieldCache. Upayavira