RE: Lucene->SOLR transition

2011-09-19 Thread Scott Smith
OK.  Thanks for all of the suggestions.

Cheers

Scott

-Original Message-
From: Erik Hatcher [mailto:erik.hatc...@gmail.com] 
Sent: Monday, September 19, 2011 3:27 AM
To: solr-user@lucene.apache.org
Subject: Re: Lucene->SOLR transition


On Sep 18, 2011, at 19:43 , Michael Sokolov wrote:

> On 9/15/2011 8:30 PM, Scott Smith wrote:
>> 
>> 2.   Assuming that the answer to 1 is "correct", then is there an easy 
>> way to take a lucene query (with nested Boolean queries, filter queries, 
>> etc.) and generate a SOLR query string with q and fq components?
>> 
>> 
> I believe that Query.toString() will probably get you back something that can 
> be parsed in turn by the traditional lucene QueryParser, thus completing the 
> circle and returning your original Query.  But why would you want to do that?

No, you can't rely on Query.toString() roundtripping (think stemming, for 
example - but many other examples that won't work that way too).

What you can do, since you know Lucene's API well, is write a QParser(Plugin) 
that takes request parameters as strings and generates the Query from that like 
you are now with your Lucene app.

Erik



Re: Lucene->SOLR transition

2011-09-19 Thread Michael Sokolov

On 9/19/2011 5:27 AM, Erik Hatcher wrote:

On Sep 18, 2011, at 19:43 , Michael Sokolov wrote:


On 9/15/2011 8:30 PM, Scott Smith wrote:

2.   Assuming that the answer to 1 is "correct", then is there an easy way 
to take a lucene query (with nested Boolean queries, filter queries, etc.) and generate a 
SOLR query string with q and fq components?



I believe that Query.toString() will probably get you back something that can 
be parsed in turn by the traditional lucene QueryParser, thus completing the 
circle and returning your original Query.  But why would you want to do that?

No, you can't rely on Query.toString() roundtripping (think stemming, for 
example - but many other examples that won't work that way too).

Oops - thanks for clearing that up, Erik



Re: Lucene->SOLR transition

2011-09-19 Thread Erik Hatcher

On Sep 18, 2011, at 19:43 , Michael Sokolov wrote:

> On 9/15/2011 8:30 PM, Scott Smith wrote:
>> 
>> 2.   Assuming that the answer to 1 is "correct", then is there an easy 
>> way to take a lucene query (with nested Boolean queries, filter queries, 
>> etc.) and generate a SOLR query string with q and fq components?
>> 
>> 
> I believe that Query.toString() will probably get you back something that can 
> be parsed in turn by the traditional lucene QueryParser, thus completing the 
> circle and returning your original Query.  But why would you want to do that?

No, you can't rely on Query.toString() roundtripping (think stemming, for 
example - but many other examples that won't work that way too).

What you can do, since you know Lucene's API well, is write a QParser(Plugin) 
that takes request parameters as strings and generates the Query from that like 
you are now with your Lucene app.

Erik



Re: Lucene->SOLR transition

2011-09-18 Thread Michael Sokolov

On 9/15/2011 8:30 PM, Scott Smith wrote:


2.   Assuming that the answer to 1 is "correct", then is there an easy way 
to take a lucene query (with nested Boolean queries, filter queries, etc.) and generate a 
SOLR query string with q and fq components?


I believe that Query.toString() will probably get you back something 
that can be parsed in turn by the traditional lucene QueryParser, thus 
completing the circle and returning your original Query.  But why would 
you want to do that?


-Mike


Re: Lucene->SOLR transition

2011-09-16 Thread Tomás Fernández Löbbe
Hi Scott, now your queries are going to be created by a QueryParser. you
have a couple of options here, most common are LuceneQueryParser,
DismaxQueryParser and ExtendedDismaxQueryParser, but there are others. The
QueryParser will be creating all those queries you mentiones, for example,
if you are using the LuceneQueryParser and you send the query string:

field1:foo AND field2:bar

it will create a BooleanQuery with two TermQuery as clauses. The same with
more complex queries.

There are also some other QueryParsers for more specific cases. Take a look
at this class: org.apache.solr.search.QParserPlugin

You can choose and change the query parser with each request.

Local params can also be useful for you:
http://wiki.apache.org/solr/LocalParams

Regards,

Tomás

On Fri, Sep 16, 2011 at 4:25 AM, Federico Fissore wrote:

> Hi
>
> Scott Smith, il 16/09/2011 02:30, ha scritto:
>
>  I've been using lucene for a number of years.  We've now decided to move
>> to SOLR.  I have a couple of questions.
>>
>>
>> 1.   I'm used to creating Boolean queries, filter queries, term
>> queries, etc. for lucene.  Am I right in thinking that for SOLR my only
>> option is creating string queries (with q and fq components) for solrj?
>>
>> 2.   Assuming that the answer to 1 is "correct", then is there an easy
>> way to take a lucene query (with nested Boolean queries, filter queries,
>> etc.) and generate a SOLR query string with q and fq components?
>>
>
>
> one other option is to build your own SearchComponent and handle additional
> parameters
>
> best regards
>
> federico
>


Re: Lucene->SOLR transition

2011-09-16 Thread Federico Fissore

Hi

Scott Smith, il 16/09/2011 02:30, ha scritto:

I've been using lucene for a number of years.  We've now decided to move to 
SOLR.  I have a couple of questions.


1.   I'm used to creating Boolean queries, filter queries, term queries, 
etc. for lucene.  Am I right in thinking that for SOLR my only option is 
creating string queries (with q and fq components) for solrj?

2.   Assuming that the answer to 1 is "correct", then is there an easy way 
to take a lucene query (with nested Boolean queries, filter queries, etc.) and generate a 
SOLR query string with q and fq components?



one other option is to build your own SearchComponent and handle 
additional parameters


best regards

federico