You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Ravish Bhagdev <ra...@gmail.com> on 2011/02/15 17:03:18 UTC
Are there any restrictions on what kind of how many fields you can
use in Pivot Query? I get ClassCastException when I use some of my string
fields, and don't when I use some other sting fields
When include some of the fields in my search query:
SEVERE: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to
[Lorg.apache.solr.common.util.ConcurrentLRUCache$CacheEntry;
at
org.apache.solr.common.util.ConcurrentLRUCache$PQueue.myInsertWithOverflow(ConcurrentLRUCache.java:377)
at
org.apache.solr.common.util.ConcurrentLRUCache.markAndSweep(ConcurrentLRUCache.java:329)
at
org.apache.solr.common.util.ConcurrentLRUCache.put(ConcurrentLRUCache.java:144)
at org.apache.solr.search.FastLRUCache.put(FastLRUCache.java:131)
at
org.apache.solr.search.SolrIndexSearcher.getDocSet(SolrIndexSearcher.java:904)
at
org.apache.solr.handler.component.PivotFacetHelper.doPivots(PivotFacetHelper.java:121)
at
org.apache.solr.handler.component.PivotFacetHelper.doPivots(PivotFacetHelper.java:126)
at
org.apache.solr.handler.component.PivotFacetHelper.process(PivotFacetHelper.java:85)
at
org.apache.solr.handler.component.FacetComponent.process(FacetComponent.java:84)
at
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:231)
at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1298)
at
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:340)
at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:240)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
Works with some fields not with others...
What could be the problem? It is hard to know with just that exception as
it refers to solr's internal files...any indicators will help me debug.
Thanks,
Ravish
Re: Are there any restrictions on what kind of how many fields you
can use in Pivot Query? I get ClassCastException when I use some of my string
fields, and don't when I use some other sting fields
Posted by Tanguy Moal <ta...@gmail.com>.
Hello Ravish, Erick,
I'm facing the same issue with solr-trunk (as of r1071282)
- Field configuration :
<fieldType name="normalized_string" class="solr.TextField"
positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.TrimFilterFactory"/>
</analyzer>
</fieldType>
- Schema configuration :
<field name="f1" type="normalized_string" indexed="true" stored="true"/>
<field name="f2" type="normalized_string" indexed="true" stored="true"/>
<field name="f3" type="normalized_string" indexed="true" stored="true"/>
In my test index, I have documents with sparse values : Some documents
may or may not have a value for f1, f2 and/or f3
The number of indexed documents is around 250000.
I'm facing the issue at query time, depending on my query, and the
temperature of the index.
Parameters having an effect on the reproducibility :
- number of levels of the decision tree : the deeper the tree, the
faster the exceptions arises
- facet.limit parameter : the higher the limit, the faster the exception
arises.
Examples :
All docs, facet-pivoting on all fields that matters, varying on
facet.limit :
q=*:* pivot=f1,f2,f3 facet.limit=1 : OK
q=*:* pivot=f1,f2,f3 facet.limit=2 : OK
...
q=*:* pivot=f1,f2,f3 facet.limit=8 : OK
q=*:* pivot=f1,f2,f3 facet.limit=9 : NOT OK
retry
q=*:* pivot=f1,f2,f3 facet.limit=9 : NOT OK
retry
q=*:* pivot=f1,f2,f3 facet.limit=9 : OK
q=*:* pivot=f1,f2,f3 facet.limit=10 : NOT OK
retry
q=*:* pivot=f1,f2,f3 facet.limit=10 : NOT OK
retry
q=*:* pivot=f1,f2,f3 facet.limit=10 : NOT OK
retry
q=*:* pivot=f1,f2,f3 facet.limit=10 : NOT OK
retry
q=*:* pivot=f1,f2,f3 facet.limit=10 : NOT OK
retry
q=*:* pivot=f1,f2,f3 facet.limit=10 : OK
q=*:* pivot=f1,f2,f3 facet.limit=11 : NOT OK
...
It really looks like a cache issue.
After some retries, I can finally obtain my results, and not an HTTP 500.
Once I obtain my results, I can ask for more, if wait a little.
That's very odd.
So before I continue, here is my query configuration :
<query>
<maxBooleanClauses>1024</maxBooleanClauses>
<filterCache class="solr.FastLRUCache" size="512" initialSize="512"
autowarmCount="0"/>
<queryResultCache class="solr.LRUCache" size="1024" initialSize="512"
autowarmCount="0"/>
<documentCache class="solr.LRUCache" size="1024" initialSize="512"
autowarmCount="0"/>
<enableLazyFieldLoading>true</enableLazyFieldLoading>
<queryResultWindowSize>20</queryResultWindowSize>
<queryResultMaxDocsCached>200</queryResultMaxDocsCached>
<listener event="newSearcher" class="solr.QuerySenderListener">
<arr name="queries">
<!--
<lst> <str name="q">solr</str> <str name="start">0</str> <str
name="rows">10</str> </lst>
<lst> <str name="q">rocks</str> <str name="start">0</str> <str
name="rows">10</str> </lst>
<lst><str name="q">static newSearcher warming query from
solrconfig.xml</str></lst>
-->
</arr>
</listener>
<listener event="firstSearcher" class="solr.QuerySenderListener">
<arr name="queries">
<lst> <str name="q">solr rocks</str><str name="start">0</str><str
name="rows">10</str></lst>
<lst><str name="q">static firstSearcher warming query from
solrconfig.xml</str></lst>
</arr>
</listener>
<useColdSearcher>false</useColdSearcher>
<maxWarmingSearchers>2</maxWarmingSearchers>
</query>
That's very much like the default configuration.
I guess that the default cache configuration is not perfectly suitable
for facet pivoting, so any hint on how to tweak it right is welcome.
Kind regards,
--
Tanguy
On 02/15/2011 06:05 PM, Erick Erickson wrote:
> To get meaningful help, you have to post a minimum of:
> 1> the relevant schema definitions for the field that makes it blow
> up. include the<fieldType> and<field> tags.
> 2> the query you used, with some indication of the field that makes it blow up.
> 3> What version you're using
> 4> any changes you've made to the standard configurations.
> 5> whether you've recently installed a new version.
>
> It might help if you reviewed: http://wiki.apache.org/solr/UsingMailingLists
>
> Best
> Erick
>
> On Tue, Feb 15, 2011 at 11:27 AM, Ravish Bhagdev
> <ra...@gmail.com> wrote:
>> Looks like its a bug? Is it not?
>>
>> Ravish
>>
>> On Tue, Feb 15, 2011 at 4:03 PM, Ravish Bhagdev<ra...@gmail.com>wrote:
>>
>>> When include some of the fields in my search query:
>>>
>>> SEVERE: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to
>>> [Lorg.apache.solr.common.util.ConcurrentLRUCache$CacheEntry;
>>> at
>>> org.apache.solr.common.util.ConcurrentLRUCache$PQueue.myInsertWithOverflow(ConcurrentLRUCache.java:377)
>>> at
>>> org.apache.solr.common.util.ConcurrentLRUCache.markAndSweep(ConcurrentLRUCache.java:329)
>>> at
>>> org.apache.solr.common.util.ConcurrentLRUCache.put(ConcurrentLRUCache.java:144)
>>> at org.apache.solr.search.FastLRUCache.put(FastLRUCache.java:131)
>>> at
>>> org.apache.solr.search.SolrIndexSearcher.getDocSet(SolrIndexSearcher.java:904)
>>> at
>>> org.apache.solr.handler.component.PivotFacetHelper.doPivots(PivotFacetHelper.java:121)
>>> at
>>> org.apache.solr.handler.component.PivotFacetHelper.doPivots(PivotFacetHelper.java:126)
>>> at
>>> org.apache.solr.handler.component.PivotFacetHelper.process(PivotFacetHelper.java:85)
>>> at
>>> org.apache.solr.handler.component.FacetComponent.process(FacetComponent.java:84)
>>> at
>>> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:231)
>>> at
>>> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
>>> at org.apache.solr.core.SolrCore.execute(SolrCore.java:1298)
>>> at
>>> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:340)
>>> at
>>> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:240)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>> at
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>> at
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>> at
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>> at
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>> at
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>> at
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
>>> at
>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
>>> at
>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
>>> at
>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>>> at java.lang.Thread.run(Thread.java:662)
>>>
>>> Works with some fields not with others...
>>>
>>> What could be the problem? It is hard to know with just that exception as
>>> it refers to solr's internal files...any indicators will help me debug.
>>>
>>> Thanks,
>>> Ravish
>>>
--
--
Tanguy
Re: Are there any restrictions on what kind of how many fields you
can use in Pivot Query? I get ClassCastException when I use some of my string
fields, and don't when I use some other sting fields
Posted by Erick Erickson <er...@gmail.com>.
To get meaningful help, you have to post a minimum of:
1> the relevant schema definitions for the field that makes it blow
up. include the <fieldType> and <field> tags.
2> the query you used, with some indication of the field that makes it blow up.
3> What version you're using
4> any changes you've made to the standard configurations.
5> whether you've recently installed a new version.
It might help if you reviewed: http://wiki.apache.org/solr/UsingMailingLists
Best
Erick
On Tue, Feb 15, 2011 at 11:27 AM, Ravish Bhagdev
<ra...@gmail.com> wrote:
> Looks like its a bug? Is it not?
>
> Ravish
>
> On Tue, Feb 15, 2011 at 4:03 PM, Ravish Bhagdev <ra...@gmail.com>wrote:
>
>> When include some of the fields in my search query:
>>
>> SEVERE: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to
>> [Lorg.apache.solr.common.util.ConcurrentLRUCache$CacheEntry;
>> at
>> org.apache.solr.common.util.ConcurrentLRUCache$PQueue.myInsertWithOverflow(ConcurrentLRUCache.java:377)
>> at
>> org.apache.solr.common.util.ConcurrentLRUCache.markAndSweep(ConcurrentLRUCache.java:329)
>> at
>> org.apache.solr.common.util.ConcurrentLRUCache.put(ConcurrentLRUCache.java:144)
>> at org.apache.solr.search.FastLRUCache.put(FastLRUCache.java:131)
>> at
>> org.apache.solr.search.SolrIndexSearcher.getDocSet(SolrIndexSearcher.java:904)
>> at
>> org.apache.solr.handler.component.PivotFacetHelper.doPivots(PivotFacetHelper.java:121)
>> at
>> org.apache.solr.handler.component.PivotFacetHelper.doPivots(PivotFacetHelper.java:126)
>> at
>> org.apache.solr.handler.component.PivotFacetHelper.process(PivotFacetHelper.java:85)
>> at
>> org.apache.solr.handler.component.FacetComponent.process(FacetComponent.java:84)
>> at
>> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:231)
>> at
>> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
>> at org.apache.solr.core.SolrCore.execute(SolrCore.java:1298)
>> at
>> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:340)
>> at
>> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:240)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>> at
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>> at
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>> at
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>> at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>> at
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>> at
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
>> at
>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
>> at
>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
>> at
>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>> at java.lang.Thread.run(Thread.java:662)
>>
>> Works with some fields not with others...
>>
>> What could be the problem? It is hard to know with just that exception as
>> it refers to solr's internal files...any indicators will help me debug.
>>
>> Thanks,
>> Ravish
>>
>
Re: Are there any restrictions on what kind of how many fields you
can use in Pivot Query? I get ClassCastException when I use some of my string
fields, and don't when I use some other sting fields
Posted by Ravish Bhagdev <ra...@gmail.com>.
Looks like its a bug? Is it not?
Ravish
On Tue, Feb 15, 2011 at 4:03 PM, Ravish Bhagdev <ra...@gmail.com>wrote:
> When include some of the fields in my search query:
>
> SEVERE: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to
> [Lorg.apache.solr.common.util.ConcurrentLRUCache$CacheEntry;
> at
> org.apache.solr.common.util.ConcurrentLRUCache$PQueue.myInsertWithOverflow(ConcurrentLRUCache.java:377)
> at
> org.apache.solr.common.util.ConcurrentLRUCache.markAndSweep(ConcurrentLRUCache.java:329)
> at
> org.apache.solr.common.util.ConcurrentLRUCache.put(ConcurrentLRUCache.java:144)
> at org.apache.solr.search.FastLRUCache.put(FastLRUCache.java:131)
> at
> org.apache.solr.search.SolrIndexSearcher.getDocSet(SolrIndexSearcher.java:904)
> at
> org.apache.solr.handler.component.PivotFacetHelper.doPivots(PivotFacetHelper.java:121)
> at
> org.apache.solr.handler.component.PivotFacetHelper.doPivots(PivotFacetHelper.java:126)
> at
> org.apache.solr.handler.component.PivotFacetHelper.process(PivotFacetHelper.java:85)
> at
> org.apache.solr.handler.component.FacetComponent.process(FacetComponent.java:84)
> at
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:231)
> at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
> at org.apache.solr.core.SolrCore.execute(SolrCore.java:1298)
> at
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:340)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:240)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
> at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> at java.lang.Thread.run(Thread.java:662)
>
> Works with some fields not with others...
>
> What could be the problem? It is hard to know with just that exception as
> it refers to solr's internal files...any indicators will help me debug.
>
> Thanks,
> Ravish
>