Re: Compile problems with anonymous SimpleCollector in custom request handler

2017-11-30 Thread Tod Olson
Shawn,

Thanks for the response! Yes, that was it, an older version unexpectedly in the 
classpath.

And for the benefit of anyone who searches the list archive with a similar 
debugging need, it's pretty easy to print out the classpath from ant's 
build.xml:

  






  
  
  
  Classpath: ${classpathProp}


-Tod

On Nov 29, 2017, at 6:00 PM, Shawn Heisey 
> wrote:

On 11/29/2017 2:27 PM, Tod Olson wrote:
I'm modifying a existing custom request handler for an open source project, and 
am looking for some help with a compile error around an anonymous 
SimpleCollector. The build failure message from ant and the source of the 
specific method are below. I am compiling on a Mac with Java 1.8 and Solr 
6.4.2. There are two things I do not understand.

First:
   [javac] 
/Users/tod/src/vufind-browse-handler/browse-handler/java/org/vufind/solr/handler/BrowseRequestHandler.java:445:
 error:  is not abstract and does 
not override abstract method setNextReader(AtomicReaderContext) in Collector
   [javac] db.search(q, new SimpleCollector() {

Based on the javadoc, neither SimpleCollector nor Collector define a 
setNextReader(AtomicReaderContext) method. Grepping through the Lucene 6.4.2 
source reveals neither a setNextReader method (though maybe a couple archaic 
comments), nor an AtomicReaderContext class or interface.



Second:
   [javac] method IndexSearcher.search(Query,Collector) is not applicable
   [javac]   (argument mismatch;  cannot be 
converted to Collector)

How is it that SimpleCollector cannot be converted to Collector? Perhaps this 
is just a consequence of the first error.

For the first error:  What version of Solr/Lucene are you compiling
against?  I have found that Collector *did* have a setNextReader method
up through Lucene 4.10.4, but in 5.0, that method was gone.  I suspect
that what's causing your first problem is that you have older Lucene
jars (4.x or earlier) on your classpath, in addition to a newer version
that you actually want to use for the compile.

I think that can also explain the second problem.  It looks like
SimpleCollector didn't exist in Lucene 4.10, which is the last version
where Collector had setNextReader.  SimpleCollector is mentioned in the
javadoc for Collector as of 5.0, though.

Thanks,
Shawn





Re: Compile problems with anonymous SimpleCollector in custom request handler

2017-11-29 Thread Shawn Heisey
On 11/29/2017 2:27 PM, Tod Olson wrote:
> I'm modifying a existing custom request handler for an open source project, 
> and am looking for some help with a compile error around an anonymous 
> SimpleCollector. The build failure message from ant and the source of the 
> specific method are below. I am compiling on a Mac with Java 1.8 and Solr 
> 6.4.2. There are two things I do not understand.
>
> First:
> [javac] 
> /Users/tod/src/vufind-browse-handler/browse-handler/java/org/vufind/solr/handler/BrowseRequestHandler.java:445:
>  error:  is not abstract and does 
> not override abstract method setNextReader(AtomicReaderContext) in Collector
> [javac] db.search(q, new SimpleCollector() {
>
> Based on the javadoc, neither SimpleCollector nor Collector define a 
> setNextReader(AtomicReaderContext) method. Grepping through the Lucene 6.4.2 
> source reveals neither a setNextReader method (though maybe a couple archaic 
> comments), nor an AtomicReaderContext class or interface.



> Second:
> [javac] method IndexSearcher.search(Query,Collector) is not applicable
> [javac]   (argument mismatch;  cannot be 
> converted to Collector)
>
> How is it that SimpleCollector cannot be converted to Collector? Perhaps this 
> is just a consequence of the first error.

For the first error:  What version of Solr/Lucene are you compiling
against?  I have found that Collector *did* have a setNextReader method
up through Lucene 4.10.4, but in 5.0, that method was gone.  I suspect
that what's causing your first problem is that you have older Lucene
jars (4.x or earlier) on your classpath, in addition to a newer version
that you actually want to use for the compile.

I think that can also explain the second problem.  It looks like
SimpleCollector didn't exist in Lucene 4.10, which is the last version
where Collector had setNextReader.  SimpleCollector is mentioned in the
javadoc for Collector as of 5.0, though.

Thanks,
Shawn



Compile problems with anonymous SimpleCollector in custom request handler

2017-11-29 Thread Tod Olson
Hi everyone,

I'm modifying a existing custom request handler for an open source project, and 
am looking for some help with a compile error around an anonymous 
SimpleCollector. The build failure message from ant and the source of the 
specific method are below. I am compiling on a Mac with Java 1.8 and Solr 
6.4.2. There are two things I do not understand.

First:
[javac] 
/Users/tod/src/vufind-browse-handler/browse-handler/java/org/vufind/solr/handler/BrowseRequestHandler.java:445:
 error:  is not abstract and does 
not override abstract method setNextReader(AtomicReaderContext) in Collector
[javac] db.search(q, new SimpleCollector() {

Based on the javadoc, neither SimpleCollector nor Collector define a 
setNextReader(AtomicReaderContext) method. Grepping through the Lucene 6.4.2 
source reveals neither a setNextReader method (though maybe a couple archaic 
comments), nor an AtomicReaderContext class or interface.

Second:
[javac] method IndexSearcher.search(Query,Collector) is not applicable
[javac]   (argument mismatch;  cannot be 
converted to Collector)

How is it that SimpleCollector cannot be converted to Collector? Perhaps this 
is just a consequence of the first error.

Any help getting past this compile problem would be most welcome!

-Tod




Build failure message:

build-handler:
[mkdir] Created dir: 
/Users/tod/src/vufind-browse-handler/build/browse-handler
[javac] Compiling 1 source file to 
/Users/tod/src/vufind-browse-handler/build/browse-handler
[javac] 
/Users/tod/src/vufind-browse-handler/browse-handler/java/org/vufind/solr/handler/BrowseRequestHandler.java:445:
 error:  is not abstract and does 
not override abstract method setNextReader(AtomicReaderContext) in Collector
[javac] db.search(q, new SimpleCollector() {
[javac]^
[javac] 
/Users/tod/src/vufind-browse-handler/browse-handler/java/org/vufind/solr/handler/BrowseRequestHandler.java:445:
 error: no suitable method found for search(TermQuery,)
[javac] db.search(q, new SimpleCollector() {
[javac]   ^
[javac] method IndexSearcher.search(Query,int) is not applicable
[javac]   (argument mismatch;  cannot be 
converted to int)
[javac] method IndexSearcher.search(Query,Filter,int) is not applicable
[javac]   (actual and formal argument lists differ in length)
[javac] method IndexSearcher.search(Query,Filter,Collector) is not 
applicable
[javac]   (actual and formal argument lists differ in length)
[javac] method IndexSearcher.search(Query,Collector) is not applicable
[javac]   (argument mismatch;  cannot be 
converted to Collector)
[javac] method IndexSearcher.search(Query,Filter,int,Sort) is not 
applicable
[javac]   (actual and formal argument lists differ in length)
[javac] method 
IndexSearcher.search(Query,Filter,int,Sort,boolean,boolean) is not applicable
[javac]   (actual and formal argument lists differ in length)
[javac] method IndexSearcher.search(Query,int,Sort) is not applicable
[javac]   (actual and formal argument lists differ in length)
[javac] method IndexSearcher.search(Weight,ScoreDoc,int) is not 
applicable
[javac]   (actual and formal argument lists differ in length)
[javac] method 
IndexSearcher.search(List,Weight,ScoreDoc,int) is not 
applicable
[javac]   (actual and formal argument lists differ in length)
[javac] method IndexSearcher.search(Weight,int,Sort,boolean,boolean) is 
not applicable
[javac]   (actual and formal argument lists differ in length)
[javac] method 
IndexSearcher.search(Weight,FieldDoc,int,Sort,boolean,boolean,boolean) is not 
applicable
[javac]   (actual and formal argument lists differ in length)
[javac] method 
IndexSearcher.search(List,Weight,FieldDoc,int,Sort,boolean,boolean,boolean)
 is not applicable
[javac]   (actual and formal argument lists differ in length)
[javac] method 
IndexSearcher.search(List,Weight,Collector) is not 
applicable
[javac]   (actual and formal argument lists differ in length)
[javac] 2 errors


Problem method:

/**
 *
 * Function to retrieve the doc ids when there is a building limit
 * This retrieves the doc ids for an individual heading
 *
 * Need to add a filter query to limit the results from Solr
 *
 * Includes functionality to retrieve additional info
 * like titles for call numbers, possibly ISBNs
 *
 * @param headingstring of the heading to use for finding matching
 * @param fields docs colon-separated string of Solr fields
 *   to return for use in the browse display
 * @param maxBibListSize maximum numbers of records to check for fields
 * @return return a map of Solr ids and extra bib info
 */
public