Error in faceted browsing

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Error in faceted browsing

jrodenburg
I just pulled down the nightly solr build from 9/12 and have it up and
running.  I copied an index created in a solr version that's about 3 months
old.

I have a query formulated like this:
http://solrbox:8080/solr/select?q=description:dell&rows=0&facet=true&facet.limit=-1&facet.field=merchant_name

The <fields> definition from schema.xml:

   <field name="item_id" type="long" indexed="true" stored="true"/>
   <field name="title" type="text" indexed="true" stored="true"/>
   <field name="description" type="text" indexed="true" stored="true"/>
   <field name="merchant_id" type="integer" indexed="true" stored="true" />
   <field name="merchant_name" type="text" indexed="true" stored="true" />

The result:
<response>
  <responseHeader>
  <status>0</status>
  <QTime>2</QTime>
</responseHeader>
<result numFound="52" start="0"/>
  <lst name="facet_counts">
  <lst name="facet_queries"/>
  <str name="exception">
java.util.NoSuchElementException
    at java.util.TreeMap.key(TreeMap.java:433)
    at java.util.TreeMap.lastKey(TreeMap.java:297)
    at java.util.TreeSet.last(TreeSet.java:417)
    at org.apache.solr.util.BoundedTreeSet.adjust(BoundedTreeSet.java:54)
    at org.apache.solr.util.BoundedTreeSet.setMaxSize(BoundedTreeSet.java
:50)
    at org.apache.solr.util.BoundedTreeSet.<init>(BoundedTreeSet.java:31)
    at org.apache.solr.request.SimpleFacets.getFacetTermEnumCounts(
SimpleFacets.java:187)
    at org.apache.solr.request.SimpleFacets.getFacetFieldCounts(
SimpleFacets.java:137)
    at org.apache.solr.request.SimpleFacets.getFacetCounts(SimpleFacets.java
:84)
    at org.apache.solr.request.StandardRequestHandler.getFacetInfo(
StandardRequestHandler.java:180)
    at org.apache.solr.request.StandardRequestHandler.handleRequest(
StandardRequestHandler.java:120)
    at org.apache.solr.core.SolrCore.execute(SolrCore.java:586)
    at org.apache.solr.servlet.SolrServlet.doGet(SolrServlet.java:91)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(
StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(
ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(
CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:869)
    at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection
(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)
</str>
</lst>
</response>


What am I missing?

-- j
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Error in faceted browsing

Chris Hostetter-3

: I just pulled down the nightly solr build from 9/12 and have it up and
: running.  I copied an index created in a solr version that's about 3 months
: old.

it looks like my changes to have a sensible default (which is when
facet.limit=-1 became legal) didn't make it into solr-2006-09-12.zip, but
it is in solr-2006-09-13.zip.

with the version you are using leaving out the facet.limit should achieve
what you want ... but based on your schema, using merchant_name as a facet
field may not work like you expect -- you'll probably want an exact String
version of the merchant_name field (or just use merchant_id and lookup the
name in a handy Map)

:
: I have a query formulated like this:
: http://solrbox:8080/solr/select?q=description:dell&rows=0&facet=true&facet.limit=-1&facet.field=merchant_name
:
: The <fields> definition from schema.xml:
:
:    <field name="item_id" type="long" indexed="true" stored="true"/>
:    <field name="title" type="text" indexed="true" stored="true"/>
:    <field name="description" type="text" indexed="true" stored="true"/>
:    <field name="merchant_id" type="integer" indexed="true" stored="true" />
:    <field name="merchant_name" type="text" indexed="true" stored="true" />
:
: The result:
: <response>
:   <responseHeader>
:   <status>0</status>
:   <QTime>2</QTime>
: </responseHeader>
: <result numFound="52" start="0"/>
:   <lst name="facet_counts">
:   <lst name="facet_queries"/>
:   <str name="exception">
: java.util.NoSuchElementException
:     at java.util.TreeMap.key(TreeMap.java:433)
:     at java.util.TreeMap.lastKey(TreeMap.java:297)
:     at java.util.TreeSet.last(TreeSet.java:417)
:     at org.apache.solr.util.BoundedTreeSet.adjust(BoundedTreeSet.java:54)
:     at org.apache.solr.util.BoundedTreeSet.setMaxSize(BoundedTreeSet.java
: :50)
:     at org.apache.solr.util.BoundedTreeSet.<init>(BoundedTreeSet.java:31)
:     at org.apache.solr.request.SimpleFacets.getFacetTermEnumCounts(
: SimpleFacets.java:187)
:     at org.apache.solr.request.SimpleFacets.getFacetFieldCounts(
: SimpleFacets.java:137)
:     at org.apache.solr.request.SimpleFacets.getFacetCounts(SimpleFacets.java
: :84)
:     at org.apache.solr.request.StandardRequestHandler.getFacetInfo(
: StandardRequestHandler.java:180)
:     at org.apache.solr.request.StandardRequestHandler.handleRequest(
: StandardRequestHandler.java:120)
:     at org.apache.solr.core.SolrCore.execute(SolrCore.java:586)
:     at org.apache.solr.servlet.SolrServlet.doGet(SolrServlet.java:91)
:     at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
:     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
:     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
: ApplicationFilterChain.java:252)
:     at org.apache.catalina.core.ApplicationFilterChain.doFilter(
: ApplicationFilterChain.java:173)
:     at org.apache.catalina.core.StandardWrapperValve.invoke(
: StandardWrapperValve.java:213)
:     at org.apache.catalina.core.StandardContextValve.invoke(
: StandardContextValve.java:178)
:     at org.apache.catalina.core.StandardHostValve.invoke(
: StandardHostValve.java:126)
:     at org.apache.catalina.valves.ErrorReportValve.invoke(
: ErrorReportValve.java:105)
:     at org.apache.catalina.core.StandardEngineValve.invoke(
: StandardEngineValve.java:107)
:     at org.apache.catalina.connector.CoyoteAdapter.service(
: CoyoteAdapter.java:148)
:     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
: :869)
:     at
: org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection
: (Http11BaseProtocol.java:664)
:     at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
: PoolTcpEndpoint.java:527)
:     at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
: LeaderFollowerWorkerThread.java:80)
:     at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
: ThreadPool.java:684)
:     at java.lang.Thread.run(Thread.java:595)
: </str>
: </lst>
: </response>
:
:
: What am I missing?
:
: -- j
:



-Hoss

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Error in faceted browsing

jrodenburg
Thanks Chris.

I bumped the facet.limit to 10 and it works like a charm.

Thanks for the heads up on the merchant_name.  I would probably just keep a
dictionary in memory, but if I wanted to pull the stored merchant_name back,
how would/can I do that?

thanks,
j

On 9/13/06, Chris Hostetter <[hidden email]> wrote:

>
>
> : I just pulled down the nightly solr build from 9/12 and have it up and
> : running.  I copied an index created in a solr version that's about 3
> months
> : old.
>
> it looks like my changes to have a sensible default (which is when
> facet.limit=-1 became legal) didn't make it into solr-2006-09-12.zip, but
> it is in solr-2006-09-13.zip.
>
> with the version you are using leaving out the facet.limit should achieve
> what you want ... but based on your schema, using merchant_name as a facet
> field may not work like you expect -- you'll probably want an exact String
> version of the merchant_name field (or just use merchant_id and lookup the
> name in a handy Map)
>
> :
> : I have a query formulated like this:
> :
> http://solrbox:8080/solr/select?q=description:dell&rows=0&facet=true&facet.limit=-1&facet.field=merchant_name
> :
> : The <fields> definition from schema.xml:
> :
> :    <field name="item_id" type="long" indexed="true" stored="true"/>
> :    <field name="title" type="text" indexed="true" stored="true"/>
> :    <field name="description" type="text" indexed="true" stored="true"/>
> :    <field name="merchant_id" type="integer" indexed="true" stored="true"
> />
> :    <field name="merchant_name" type="text" indexed="true" stored="true"
> />
> :
> : The result:
> : <response>
> :   <responseHeader>
> :   <status>0</status>
> :   <QTime>2</QTime>
> : </responseHeader>
> : <result numFound="52" start="0"/>
> :   <lst name="facet_counts">
> :   <lst name="facet_queries"/>
> :   <str name="exception">
> : java.util.NoSuchElementException
> :     at java.util.TreeMap.key(TreeMap.java:433)
> :     at java.util.TreeMap.lastKey(TreeMap.java:297)
> :     at java.util.TreeSet.last(TreeSet.java:417)
> :     at org.apache.solr.util.BoundedTreeSet.adjust(BoundedTreeSet.java
> :54)
> :     at org.apache.solr.util.BoundedTreeSet.setMaxSize(
> BoundedTreeSet.java
> : :50)
> :     at org.apache.solr.util.BoundedTreeSet.<init>(BoundedTreeSet.java
> :31)
> :     at org.apache.solr.request.SimpleFacets.getFacetTermEnumCounts(
> : SimpleFacets.java:187)
> :     at org.apache.solr.request.SimpleFacets.getFacetFieldCounts(
> : SimpleFacets.java:137)
> :     at org.apache.solr.request.SimpleFacets.getFacetCounts(
> SimpleFacets.java
> : :84)
> :     at org.apache.solr.request.StandardRequestHandler.getFacetInfo(
> : StandardRequestHandler.java:180)
> :     at org.apache.solr.request.StandardRequestHandler.handleRequest(
> : StandardRequestHandler.java:120)
> :     at org.apache.solr.core.SolrCore.execute(SolrCore.java:586)
> :     at org.apache.solr.servlet.SolrServlet.doGet(SolrServlet.java:91)
> :     at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> :     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> :     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> : ApplicationFilterChain.java:252)
> :     at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> : ApplicationFilterChain.java:173)
> :     at org.apache.catalina.core.StandardWrapperValve.invoke(
> : StandardWrapperValve.java:213)
> :     at org.apache.catalina.core.StandardContextValve.invoke(
> : StandardContextValve.java:178)
> :     at org.apache.catalina.core.StandardHostValve.invoke(
> : StandardHostValve.java:126)
> :     at org.apache.catalina.valves.ErrorReportValve.invoke(
> : ErrorReportValve.java:105)
> :     at org.apache.catalina.core.StandardEngineValve.invoke(
> : StandardEngineValve.java:107)
> :     at org.apache.catalina.connector.CoyoteAdapter.service(
> : CoyoteAdapter.java:148)
> :     at org.apache.coyote.http11.Http11Processor.process(
> Http11Processor.java
> : :869)
> :     at
> :
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection
> : (Http11BaseProtocol.java:664)
> :     at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
> : PoolTcpEndpoint.java:527)
> :     at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
> : LeaderFollowerWorkerThread.java:80)
> :     at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> : ThreadPool.java:684)
> :     at java.lang.Thread.run(Thread.java:595)
> : </str>
> : </lst>
> : </response>
> :
> :
> : What am I missing?
> :
> : -- j
> :
>
>
>
> -Hoss
>
>
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Error in faceted browsing

Yonik Seeley-2
On 9/13/06, Jeff Rodenburg <[hidden email]> wrote:
> Thanks for the heads up on the merchant_name.  I would probably just keep a
> dictionary in memory, but if I wanted to pull the stored merchant_name back,
> how would/can I do that?

If you don't want merchant_name tokenized at all, just change the type
to string.
If you want an additional field for faceting on with merchant_name
untokenized, then use copyField in schema.xml to copy merchant_name to
merchant_name_exact
and define
  <field name="merchant_name_exact" type="string" indexed="true"
stored="false" />

-Yonik
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Error in faceted browsing

jrodenburg
Outstanding, thanks.

- j

On 9/13/06, Yonik Seeley <[hidden email]> wrote:

>
> On 9/13/06, Jeff Rodenburg <[hidden email]> wrote:
> > Thanks for the heads up on the merchant_name.  I would probably just
> keep a
> > dictionary in memory, but if I wanted to pull the stored merchant_name
> back,
> > how would/can I do that?
>
> If you don't want merchant_name tokenized at all, just change the type
> to string.
> If you want an additional field for faceting on with merchant_name
> untokenized, then use copyField in schema.xml to copy merchant_name to
> merchant_name_exact
> and define
>   <field name="merchant_name_exact" type="string" indexed="true"
> stored="false" />
>
> -Yonik
>
Loading...