Andi Vajda <va...@apache.org> wrote:

> Look at the new version in
> apache/pylucene-3.1/java/org/apache/pylucene/queryParser/PythonQueryParser.java
> and see the native methods that you're missing on your Python

Wow, looks like a lot.  My implementations just have implementations of
getFieldQuery() and getRangeQuery().

> implementation. Also take a look at test/test_PythonQueryParser.py for
> an example on what the new methods look like (hint:
> getFieldQuery_quoted()).

Looking at that, it seems that one needn't provide implementations for
most of the native methods -- your example classes don't.  How should one
know which to implement?  The ones that could get called, I suppose.

Bill


> 
> With a default QueryParser instance, your query parses just fine:
> 
>   >>> from lucene import *
>   >>> initVM()
>   <jcc.JCCEnv object at 0x10029d0f0>
>   >>> qp = QueryParser(Version.LUCENE_CURRENT, "foo", 
> StandardAnalyzer(Version.LUCENE_CURRENT))
>   >>> qp.parse("categories:RSSReader AND id:[00000-00-0000-000 TO 
> 01299-51-3142-795] AND NOT categories:RSSReader/_noexpire_")
>   <Query: +categories:rssreader +id:[00000-00-0000-000 TO 01299-51-3142-795] 
> -(categories:rssreader categories:_noexpire_)>
> 
> Andi..
> 
> On Wed, 6 Apr 2011, Bill Janssen wrote:
> 
> > I'm seeing parse failures on this query string:
> >
> > "categories:RSSReader AND id:[00000-00-0000-000 TO 01299-51-3142-795] AND 
> > NOT categories:RSSReader/_noexpire_"
> >
> > thr002: RSSReader:  Traceback (most recent call last):
> > thr002:   File "/local/lib/UpLib-1.7.11/site-extensions/RSSReader.py", line 
> > 271, in _scan_rss_sites
> > thr002:     hits = repo.do_query("categories:RSSReader AND 
> > id:[00000-00-0000-000 TO %s] AND NOT categories:RSSReader/_noexpire_" % 
> > old_id)
> > thr002:   File "/local/share/UpLib-1.7.11/code/uplib/repository.py", line 
> > 1172, in do_query
> > thr002:     results = self.do_full_query(query_string, searchtype)
> > thr002:   File "/local/share/UpLib-1.7.11/code/uplib/repository.py", line 
> > 1196, in do_full_query
> > thr002:     results = self.pylucene_search(searchtype, query_string)
> > thr002:   File "/local/share/UpLib-1.7.11/code/uplib/repository.py", line 
> > 1081, in pylucene_search
> > thr002:     v = self.__search_context.search(query_string)
> > thr002:   File "/local/share/UpLib-1.7.11/code/uplib/indexing.py", line 
> > 913, in search
> > thr002:     parsed_query = query_parser.parseQ(query)
> > thr002:   File "/local/share/UpLib-1.7.11/code/uplib/indexing.py", line 
> > 550, in parseQ
> > thr002:     query = QueryParser.parse(self, querystring)
> > thr002: JavaError: org.apache.jcc.PythonException: getFieldQuery_quoted
> > thr002: AttributeError: getFieldQuery_quoted
> >
> > thr002:     Java stacktrace:
> > thr002: org.apache.jcc.PythonException: getFieldQuery_quoted
> > thr002: AttributeError: getFieldQuery_quoted
> >
> > thr002:     at 
> > org.apache.pylucene.queryParser.PythonMultiFieldQueryParser.getFieldQuery_quoted(Native
> >  Method)
> > thr002:     at 
> > org.apache.pylucene.queryParser.PythonMultiFieldQueryParser.getFieldQuery(Unknown
> >  Source)
> > thr002:     at 
> > org.apache.lucene.queryParser.QueryParser.Term(QueryParser.java:1421)
> > thr002:     at 
> > org.apache.lucene.queryParser.QueryParser.Clause(QueryParser.java:1309)
> > thr002:     at 
> > org.apache.lucene.queryParser.QueryParser.Query(QueryParser.java:1237)
> > thr002:     at 
> > org.apache.lucene.queryParser.QueryParser.TopLevelQuery(QueryParser.java:1226)
> > thr002:     at 
> > org.apache.lucene.queryParser.QueryParser.parse(QueryParser.java:206)
> >
> >
> > Bill
> >

repl: bad addresses:
        pylucene-...@lucene.apache.org Andi Vajda <va...@apache.org> -- junk 
after local@domain (Andi)

Reply via email to