Hi Leonid, I didn't look into solr qparser for a long time, but I think you should be able to combine different query parsers in one query. Look at the SolrQueryParser code, maybe now you can specify custom query parser for every clause (?), st like:
foo AND {!lucene}bar I dont know, but worth exploring There is an another implementation of a query language, for which I know it allows to combine different query parsers in one (cause I wrote it), there the query goes this way: edismax(dog cat AND lucene((foo AND bar)~3)) meaning: use edismax to build the main query, but let lucene query parser build the 3rd clause - the nested 'for and bar' (parsers are expressed as function operators, so you can use any query parser there exist in SOLR) it is here, https://issues.apache.org/jira/browse/LUCENE-5014, but that was not reviewed/integrated either So no, you are not always limited by the query parser - you can combine them (in more or less limited fashion). But yes, the query parsers limit the expressiveness of your query language, but not what can be searched (they will all produce Query object). Best, roman On Thu, Jan 1, 2015 at 10:15 AM, Jack Krupansky <jack.krupan...@gmail.com> wrote: > Yes, you are always limited by the query parser syntax, but of course you > can always write your own query parser as well. > > There is an open issue for an XML-based query parser that would give you > greater control. but... it's not committed yet: > https://issues.apache.org/jira/browse/SOLR-839 > > -- Jack Krupansky > > On Thu, Jan 1, 2015 at 4:08 AM, Leonid Bolshinsky <leonid...@gmail.com> > wrote: > > > Hello, > > > > Are we always limited by the query parser syntax when passing a query > > string to Solr? > > What about the query elements which are not supported by the syntax? > > For example, BooleanQuery.setMinimumNumberShouldMatch(n) is translated by > > BooleanQuery.toString() into ~n. But this is not a valid query syntax. So > > how can we express this via query syntax in Solr? > > > > And more general question: > > Given a Lucene Query object which was built programatically by a legacy > > code (which is using Lucene and not Solr), is there any way to translate > it > > into Solr query (which must be a string). As Query.toString() doesn't > have > > to be a valid Lucene query syntax, does it mean that the Solr query > string > > must to be manually translated from the Lucene query object? Is there any > > utility that performs this job? And, again, what about queries not > > supported by the query syntax, like CustomScoreQuery, PayloadTermQuery > > etc.? Are we always limited in Solr by the query parser syntax? > > > > Thanks, > > Leonid > > >