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
FieldCache error for multivalued fields in json facets.
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. Best Regards, Iana