You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-dev@lucene.apache.org by Erik Hatcher <er...@ehatchersolutions.com> on 2009/05/25 14:16:06 UTC
issue on trunk?
I saw Peter Wolanin mention this on IRC's #solr the other day (Hi
Peter, nice meeting you at the meetup the other night!), and I just
encountered it too:
HTTP ERROR: 500
org.apache.lucene.index.ReadOnlySegmentReader cannot be cast to
org.apache.solr.search.SolrIndexReader
java.lang.ClassCastException:
org.apache.lucene.index.ReadOnlySegmentReader cannot be cast to
org.apache.solr.search.SolrIndexReader
at org.apache.solr.search.DocSetBase$1.getDocIdSet(DocSet.java:254)
at org.apache.lucene.search.IndexSearcher.doSearch(IndexSearcher.java:
237)
at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:
221)
This comes from using an fq parameter: http://localhost:8983/solr/select?q=*:*&fq=ipod
Works fine without fq.
Yikes!
Erik
Re: issue on trunk?
Posted by Erik Hatcher <er...@ehatchersolutions.com>.
On May 25, 2009, at 8:59 AM, Erik Hatcher wrote:
>
> On May 25, 2009, at 8:51 AM, Mark Miller wrote:
>
>> Erik Hatcher wrote:
>>> I saw Peter Wolanin mention this on IRC's #solr the other day (Hi
>>> Peter, nice meeting you at the meetup the other night!), and I
>>> just encountered it too:
>>>
>>> HTTP ERROR: 500
>>>
>>> org.apache.lucene.index.ReadOnlySegmentReader cannot be cast to
>>> org.apache.solr.search.SolrIndexReader
>>>
>>> java.lang.ClassCastException:
>>> org.apache.lucene.index.ReadOnlySegmentReader cannot be cast to
>>> org.apache.solr.search.SolrIndexReader
>>> at org.apache.solr.search.DocSetBase$1.getDocIdSet(DocSet.java:
>>> 254)
>>> at
>>> org.apache.lucene.search.IndexSearcher.doSearch(IndexSearcher.java:
>>> 237)
>>> at
>>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:
>>> 221)
>>>
>>> This comes from using an fq parameter: http://localhost:8983/solr/select?q=*:*&fq=ipod
>>>
>>> Works fine without fq.
>>>
>>> Yikes!
>>>
>>> Erik
>>>
>> Hmmm - what did you do leading up to it? I just tried a trunk
>> example, load docs, try search, and that doesn't seem to tickle it.
>> It appears that somehow, some code is passing in a lucene reader
>> that didnt come from SolrIndexSearcher (which wraps indexreader to
>> solrindexreader). I can't find the code that would be doing that
>> though. Was looking for a deeper stacktrace or something, but
>> havn't been able to tickle the bug yet.
>
> Hmmm.... I guess I shouldn't have left out a couple of details, I'm
> launching Solr like this: java -Dsolr.solr.home=../contrib/velocity/
> src/main/solr/ -jar start.jar and I'm using the May 24 nightly build.
>
> So it is using a different configuration, which is mostly a clone of
> the example config, but apparently different in some respect. I'll
> try with trunk and see. I mentioned trunk in the subject, sorry
> about the misdirection.
>
> I'll try on trunk now.
Ok, on trunk all is well with the default example configuration. But
breaks launching as mentioned above. Here's the diff in
solrconfig.xml pasted below. I guess the important diff is the LRU
cache setting? Is that the culprit?
Erik
~/dev/solr/example: diff solr/conf/solrconfig.xml ../contrib/velocity/
src/main/solr/conf/solrconfig.xml
212,217d211
< <!-- There are two implementations of cache available for Solr,
< LRUCache, based on a synchronized LinkedHashMap, and
< FastLRUCache, based on a ConcurrentHashMap. FastLRUCache
has faster gets
< and slower puts in single threaded operation and thus is
generally faster
< than LRUCache when the hit ratio of the cache is high (>
75%), and may be
< faster under other scenarios on multi-cpu systems. -->
225c219
< class - the SolrCache implementation LRUCache or FastLRUCache
---
> class - the SolrCache implementation (currently only
LRUCache)
233c227
< class="solr.FastLRUCache"
---
> class="solr.LRUCache"
238,248d231
< <!-- Cache used to hold field values that are quickly accessible
< by document id. The fieldValueCache is created by default
< even if not configured here.
< <fieldValueCache
< class="solr.FastLRUCache"
< size="512"
< autowarmCount="128"
< showItems="32"
< />
< -->
<
308a292,297
> <!-- This entry enables an int hash representation for filters
(DocSets)
> when the number of items in the set is less than maxSize.
For smaller
> sets, this representation is more memory efficient, more
efficient to
> iterate over, and faster to take intersections. -->
> <HashDocSet maxSize="3000" loadFactor="0.75"/>
>
351c340
< <requestParsers enableRemoteStreaming="true"
multipartUploadLimitInKB="2048000" />
---
> <requestParsers enableRemoteStreaming="false"
multipartUploadLimitInKB="2048" />
408a398
>
411,412c401,424
< <!-- Please refer to http://wiki.apache.org/solr/SolrReplication for
details on configuring replication -->
< <!--Master config-->
---
> <requestHandler name="/itas" class="solr.SearchHandler">
> <lst name="defaults">
> <str name="v.template">browse</str>
> <str name="v.properties">velocity.properties</str>
> <str name="title">Solritas</str>
>
> <str name="wt">velocity</str>
> <str name="defType">dismax</str>
> <str name="q.alt">*:*</str>
> <str name="rows">10</str>
> <str name="fl">*,score</str>
> <str name="facet">on</str>
> <str name="facet.field">cat</str>
> <str name="facet.mincount">1</str>
> <str name="qf">
> text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1
cat^1.4
> </str>
> </lst>
> <!--<lst name="invariants">-->
> <!--<str name="v.base_dir">/Users/erik/dev/solr/contrib/
velocity/src/main/templates</str>-->
> <!--</lst>-->
> </requestHandler>
>
> <!--Master config-->
423c435
< <requestHandler name="/replication" class="solr.ReplicationHandler">
---
> <requestHandler name="/replication" class="solr.ReplicationHandler" >
425c437
< <str name="masterUrl">http://localhost:8983/solr/
replication</str>
---
> <str name="masterUrl">http://localhost:8983/solr/
replication</str>
589,597c601,602
< <!-- A request handler utilizing the spellcheck component.
<
################################################################################################
< NOTE: This is purely as an example. The whole purpose of the
SpellCheckComponent is to hook it into
< the request handler that handles (i.e. the standard or dismax
SearchHandler)
< queries such that a separate request is not needed to get
suggestions.
<
< IN OTHER WORDS, THERE IS REALLY GOOD CHANCE THE SETUP BELOW IS NOT
WHAT YOU WANT FOR YOUR PRODUCTION SYSTEM!
<
################################################################################################
< -->
---
> <!-- a request handler utilizing the spellcheck component. This
is purely as an example.
> You will likely want to add the component to your already
specified request handlers. -->
624,646d628
< <!--
< <requestHandler name="/update/extract"
class="org.apache.solr.handler.extraction.ExtractingRequestHandler">
< <lst name="defaults">
< <str name="ext.map.Last-Modified">last_modified</str>
< <bool name="ext.ignore.und.fl">true</bool>
< </lst>
< </requestHandler>
< -->
<
<
< <!-- A component to return terms and document frequency of those
terms.
< This component does not yet support distributed search. -->
< <searchComponent name="termsComponent"
class="org.apache.solr.handler.component.TermsComponent"/>
<
< <requestHandler name="/terms"
class="org.apache.solr.handler.component.SearchHandler">
< <lst name="defaults">
< <bool name="terms">true</bool>
< </lst>
< <arr name="components">
< <str>termsComponent</str>
< </arr>
< </requestHandler>
<
677,679d658
<
< <requestHandler name="/update/javabin"
class="solr.BinaryUpdateRequestHandler" />
<
681,686c660,661
< Analysis request handler. Since Solr 1.3. Use to return how a
document is analyzed. Useful
< for debugging and as a token server for other types of
applications.
<
< This is deprecated in favor of the improved
DocumentAnalysisRequestHandler and FieldAnalysisRequestHandler
<
< <requestHandler name="/analysis"
class="solr.AnalysisRequestHandler" />
---
> Analysis request handler. Since Solr 1.3. Use to returnhow a
document is analyzed. Useful
> for debugging and as a token server for other types of
applications
688,728c663
<
< <!--
< An analysis handler that provides a breakdown of the analysis
process of provided docuemnts. This handler expects a
< (single) content stream with the following format:
<
< <docs>
< <doc>
< <field name="id">1</field>
< <field name="name">The Name</field>
< <field name="text">The Text Value</field>
< <doc>
< <doc>...</doc>
< <doc>...</doc>
< ...
< </docs>
<
< Note: Each document must contain a field which serves as the
unique key. This key is used in the returned
< response to assoicate an analysis breakdown to the analyzed
document.
<
< Like the FieldAnalysisRequestHandler, this handler also supports
query analysis by
< sending either an "analysis.query" or "q" request paraemter that
holds the query text to be analyized. It also
< supports the "analysis.showmatch" parameter which when set to
true, all field tokens that match the query
< tokens will be marked as a "match".
< -->
< <requestHandler name="/analysis/document"
class="solr.DocumentAnalysisRequestHandler" />
<
< <!--
< RequestHandler that provides much the same functionality as
analysis.jsp. Provides the ability
< to specify multiple field types and field names in the same
request and outputs index-time and
< query-time analysis for each of them.
<
< Request parameters are:
< analysis.fieldname - The field name whose analyzers are to be used
< analysis.fieldtype - The field type whose analyzers are to be used
< analysis.fieldvalue - The text for index-time analysis
< q (or analysis.q) - The text for query time analysis
< analysis.showmatch (true|false) - When set to true and when
query analysis is performed, the produced
< tokens of the field value
analysis will be marked as "matched" for every
< token that is produces by the
query analysis
< -->
< <requestHandler name="/analysis/field"
class="solr.FieldAnalysisRequestHandler" />
---
> <requestHandler name="/analysis"
class="solr.AnalysisRequestHandler" />
803,820d737
< <!-- An example dedup update processor that creates the "id" field
on the fly
< based on the hash code of some other fields. This example
has overwriteDupes
< set to false since we are using the id field as the
signatureField and Solr
< will maintain uniqueness based on that anyway. -->
< <!--
< <updateRequestProcessorChain name="dedupe">
< <processor
class
="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
< <bool name="enabled">true</bool>
< <str name="signatureField">id</str>
< <bool name="overwriteDupes">false</bool>
< <str name="fields">name,features,cat</str>
< <str
name
="signatureClass">org.apache.solr.update.processor.Lookup3Signature</
str>
< </processor>
< <processor class="solr.LogUpdateProcessorFactory" />
< <processor class="solr.RunUpdateProcessorFactory" />
< </updateRequestProcessorChain>
< -->
<
838a756,757
> <queryResponseWriter name="velocity"
class="org.apache.solr.request.VelocityResponseWriter"/>
>
~/dev/solr/example:
Re: issue on trunk?
Posted by Erik Hatcher <er...@ehatchersolutions.com>.
On May 25, 2009, at 8:51 AM, Mark Miller wrote:
> Erik Hatcher wrote:
>> I saw Peter Wolanin mention this on IRC's #solr the other day (Hi
>> Peter, nice meeting you at the meetup the other night!), and I just
>> encountered it too:
>>
>> HTTP ERROR: 500
>>
>> org.apache.lucene.index.ReadOnlySegmentReader cannot be cast to
>> org.apache.solr.search.SolrIndexReader
>>
>> java.lang.ClassCastException:
>> org.apache.lucene.index.ReadOnlySegmentReader cannot be cast to
>> org.apache.solr.search.SolrIndexReader
>> at org.apache.solr.search.DocSetBase$1.getDocIdSet(DocSet.java:
>> 254)
>> at
>> org.apache.lucene.search.IndexSearcher.doSearch(IndexSearcher.java:
>> 237)
>> at
>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:221)
>>
>> This comes from using an fq parameter: http://localhost:8983/solr/select?q=*:*&fq=ipod
>>
>> Works fine without fq.
>>
>> Yikes!
>>
>> Erik
>>
> Hmmm - what did you do leading up to it? I just tried a trunk
> example, load docs, try search, and that doesn't seem to tickle it.
> It appears that somehow, some code is passing in a lucene reader
> that didnt come from SolrIndexSearcher (which wraps indexreader to
> solrindexreader). I can't find the code that would be doing that
> though. Was looking for a deeper stacktrace or something, but havn't
> been able to tickle the bug yet.
Hmmm.... I guess I shouldn't have left out a couple of details, I'm
launching Solr like this: java -Dsolr.solr.home=../contrib/velocity/
src/main/solr/ -jar start.jar and I'm using the May 24 nightly build.
So it is using a different configuration, which is mostly a clone of
the example config, but apparently different in some respect. I'll
try with trunk and see. I mentioned trunk in the subject, sorry about
the misdirection.
I'll try on trunk now.
Erik
Re: issue on trunk?
Posted by Mark Miller <ma...@gmail.com>.
Erik Hatcher wrote:
> I saw Peter Wolanin mention this on IRC's #solr the other day (Hi
> Peter, nice meeting you at the meetup the other night!), and I just
> encountered it too:
>
> HTTP ERROR: 500
>
> org.apache.lucene.index.ReadOnlySegmentReader cannot be cast to
> org.apache.solr.search.SolrIndexReader
>
> java.lang.ClassCastException:
> org.apache.lucene.index.ReadOnlySegmentReader cannot be cast to
> org.apache.solr.search.SolrIndexReader
> at org.apache.solr.search.DocSetBase$1.getDocIdSet(DocSet.java:254)
> at
> org.apache.lucene.search.IndexSearcher.doSearch(IndexSearcher.java:237)
> at
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:221)
>
> This comes from using an fq parameter:
> http://localhost:8983/solr/select?q=*:*&fq=ipod
>
> Works fine without fq.
>
> Yikes!
>
> Erik
>
Hmmm - what did you do leading up to it? I just tried a trunk example,
load docs, try search, and that doesn't seem to tickle it. It appears
that somehow, some code is passing in a lucene reader that didnt come
from SolrIndexSearcher (which wraps indexreader to solrindexreader). I
can't find the code that would be doing that though. Was looking for a
deeper stacktrace or something, but havn't been able to tickle the bug yet.
- Mark
--
- Mark
http://www.lucidimagination.com