Yonik,

Am I right to say that using a RangeFilter for this purpose might be
less efficient for large indexes than indexing as "__null__" since
RangeFilter uses TermEnum and TermDocs and iterates through every term
in the index?

Luke

-----Original Message-----
From: Pieter Berkel [mailto:[EMAIL PROTECTED] 
Sent: Friday, August 10, 2007 10:08 AM
To: solr-dev@lucene.apache.org
Subject: Re: indexing null values?

On 10/08/07, Yonik Seeley <[EMAIL PROTECTED]> wrote:

> I take that back... being able to specify open ends on the range query

> via the parser is also another Solr specific thing.
>


This is one of the reasons why we're moving from a custom-build Lucene
solution to Solr.


Wouldn't foo:"" work for a string (untokenized) field?
> For a tokenized field that typically eliminates whitespace, no zero 
> length strings would be indexed anyway.
>


Unfortunately the Lucene query parser doesn't accept empty string values
in the query string:

SEVERE: org.apache.lucene.queryParser.ParseException: Cannot parse
'article_type:""': Lexical error at line 1, column 16.  Encountered:
<EOF> after : "\"\""
        at
org.apache.lucene.queryParser.QueryParser.parse(QueryParser.java
:153)
        at
org.apache.solr.search.QueryParsing.parseQuery(QueryParsing.java
:93)
        at
org.apache.solr.handler.StandardRequestHandler.handleRequestBody(
StandardRequestHandler.java:115)
        at org.apache.solr.handler.RequestHandlerBase.handleRequest(
RequestHandlerBase.java:78)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:723)
        at org.apache.solr.servlet.SolrDispatchFilter.execute(
SolrDispatchFilter.java:194)
        at org.apache.solr.servlet.SolrDispatchFilter.doFilter(
SolrDispatchFilter.java:162)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:188)
        at org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:210)
        at org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:174)
        at org.apache.catalina.core.StandardHostValve.invoke(
StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(
ErrorReportValve.java:117)
        at org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:108)
        at org.apache.catalina.connector.CoyoteAdapter.service(
CoyoteAdapter.java:151)
        at org.apache.coyote.http11.Http11Processor.process(
Http11Processor.java:870)
        at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.proc
essConnection
(Http11BaseProtocol.java:665)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
PoolTcpEndpoint.java:528)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
LeaderFollowerWorkerThread.java:81)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
ThreadPool.java:685)
        at java.lang.Thread.run(Thread.java:619)

While it would be a useful feature to have, I'm not sure if it's worth
persuing the matter further.

Piete

Reply via email to