Hi Reda, You probably need to modify org/apache/lucene/queryparser/classic/QueryParser.jj and QueryParserBase and regenerate QueryParser.java probably.
or you can tweak flexible parser org.apache.lucene.queryparser.flexible.precedence.processors.BooleanModifiersQueryNodeProcessor org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser As you see mileage is huge, and turns to a challenge itself. On Fri, Dec 2, 2016 at 10:32 AM, Reda Kouba <[email protected]> wrote: > Hi Mikhail, > > Do you have any suggestion to transform a string to a query object? > thanks, > reda > > > > On 2 Dec. 2016, at 18:26, Mikhail Khludnev <[email protected]> wrote: > > > > Hello, > > > > I don't think # is supported in query parsers, although it would be > great. > > So, far I saw them in only in toString(). > > > > On Fri, Dec 2, 2016 at 9:30 AM, Bouadjenek mohamed reda < > > [email protected]> wrote: > > > >> Hi All, > >> > >> > >> I wanna use a filter into a query (BooleanClause.Occur.FILTER). For > >> example, my query is: > >> > >> #repository:clinicaltrials +title:multipl > >> > >> It looks like when I build the query from this String, the filter is not > >> working. In other words, the total hits in the first example below is > >> different from total hits in the second example below. Please, does > anyone > >> know what wrong with this simple example? > >> > >> Example 1: > >> String query = "#repository:clinicaltrials +title:multipl"; > >> QueryParser qr = new QueryParser("", new StandardAnalyzer()); > >> TopDocs hits = is.search(qr.parse(query), 1); > >> > >> Example 2: > >> String[] fields = new String[]{"repository", "title"}; > >> BooleanClause.Occur[] allflags = new > >> BooleanClause.Occur[]{BooleanClause.Occur.FILTER, > >> BooleanClause.Occur.MUST}; > >> String[] query_text = new String[]{"clinicaltrials", "multipl"}; > >> Query finalQuery = MultiFieldQueryParser.parse(query_text, fields, > >> allflags, new StandardAnalyzer()); > >> TopDocs hits = is.search(finalQuery, 1); > >> > >> > >> thanks, > >> > >> > >> Best, > >> reda > >> > > > > > > > > -- > > Sincerely yours > > Mikhail Khludnev > > -- Sincerely yours Mikhail Khludnev
