That was exactly my point, Reza. As long as the query objects being used are
"simple", there is no harm in using toString. But Erik's waring is valid as
well.

Putting it in SolrJ would not make sense as the behavior of toString is not
consistent. Query objects like SpanQuery don't even have a toString
representation.

Having said that, IMO users of SolrJ can take a consious decision of using
Lucene to compose their query and do a toString for using SolrJ.

Cheers
Avlesh

On Thu, May 28, 2009 at 12:35 PM, Reza Safari <r.saf...@lukkien.com> wrote:

> I found out that toString() works well as long as you use string values and
> do not use Lucene utility classes like
> NumberTools.longToString(someLongValue)
> Maybe nice future to have a Lucene query wrapper in solr package!
>
> Reza
>
>
> On May 26, 2009, at 2:18 PM, Reza Safari wrote:
>
>  That is not what I'm looking for because my Lucene query is very
>> complicated and contains many Query sub classes.
>>
>> org.apache.lucene.search.Query luceneQuery = buildLuceneQuery(); //
>> contains many types BooleanQuery, TermQuery etc
>> SolrServer server = new CommonsHttpSolrServer("http://example.com/solr";);
>> server.query(luceneQuery)  // doesn't compile
>> SolrQuery solrQuery = new SolrQuery(luceneQuery.toString()); // doesn't
>> work because toString() results to something like this:
>> +(stage:0000000000li84 stage:0000000000li74 stage:0000000000li76
>> stage:0000000009j1b7) -available_fields_field:*|DEACTIVATION_DATE|*
>> +(content_authorization_group:000000000025t4)
>>
>> Gr, Reza
>>
>>
>> On May 26, 2009, at 12:46 AM, Yonik Seeley wrote:
>>
>>  On Mon, May 25, 2009 at 3:09 AM, Reza Safari <r.saf...@lukkien.com>
>>> wrote:
>>>
>>>> One little question: is there any utility that can convert core Lucene
>>>> query
>>>> (any type e.q. TermQuery etc) to solr query? It's is really a lot of
>>>> work
>>>> for me to rewrite existing code.
>>>>
>>>
>>> Solr internal APIs take Lucene query types.
>>> I guess perhaps you mean transforming a Lucene query into a parameter
>>> for the external HTTP API?
>>>
>>> new TermQuery(new Term("foo","bar"))
>>>  would be transformed to
>>> q=foo:bar
>>>
>>> -Yonik
>>> http://www.lucidimagination.com
>>>
>>
>>
>> --
>> Reza Safari
>> LUKKIEN
>> Copernicuslaan 15
>> 6716 BM Ede
>>
>> The Netherlands
>> ---------------------------------------------
>> http://www.lukkien.com
>> t: +31 (0) 318 698000
>>
>> This message is for the designated recipient only and may contain
>> privileged, proprietary, or otherwise private information. If you have
>> received it in error, please notify the sender immediately and delete the
>> original. Any other use of the email by you is prohibited.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
> --
> Reza Safari
> LUKKIEN
> Copernicuslaan 15
> 6716 BM Ede
>
> The Netherlands
> ---------------------------------------------
> http://www.lukkien.com
> t: +31 (0) 318 698000
>
> This message is for the designated recipient only and may contain
> privileged, proprietary, or otherwise private information. If you have
> received it in error, please notify the sender immediately and delete the
> original. Any other use of the email by you is prohibited.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

Reply via email to