-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 So, I stepped throw the QueryParser code further, and I now have found the source for this behaviour: the QueryParserTokenManager
~ System.out.println("This one returns the whole String:"); ~ String strQuery = "home/reuschling"; ~ QueryParserTokenManager tokenManager = new QueryParserTokenManager(new FastCharStream(new StringReader(strQuery))); ~ for (Token next = tokenManager.getNextToken(); !next.toString().equals(""); next = tokenManager.getNextToken()) ~ System.out.println("'" + next + "'"); ~ System.out.println("This returns the two tokenized Strings 'home' and 'reuschling':"); ~ strQuery = "home reuschling"; ~ tokenManager = new QueryParserTokenManager(new FastCharStream(new StringReader(strQuery))); ~ for (Token next = tokenManager.getNextToken(); !next.toString().equals(""); next = tokenManager.getNextToken()) ~ System.out.println("'" + next + "'"); Looks that this is really hard-coded behaviour, and not Analyzer-specific. I want to search for directories with tokenizing them, e.g. /home/reuschling - this seems to be not possible with the current queryparser. | If you subclass QueryParser than you can override this method and modify it to | do whatever evil trick you want to do. Overriding getFieldQuery() will not work because I can't differ between "home/reuschling", which should trigger a PhraseQuery, and home/reuschling without apostrophe, which should trigger a BooleanQuery...I will search whether I can find a better place for this:) regards Christian Reuschling Daniel Noll schrieb: | On Tuesday 26 February 2008 01:05:27 [EMAIL PROTECTED] wrote: |> Hi all, |> |> I have the behaviour that when I search with Luke (version 0.7.1, Lucene |> version 2.2.0) inside an arbritray field, the QueryParser creates a |> PhraseQuery when I type in |> ~ termA/termB (no "...") |> When I read the documentation at the Lucene webside, I only find the syntax |> ~ "termA termB" |> for creating phrase queries. |> |> Did I make a mistake? Can I configure the QueryParser that he simply |> tokenizes between termA and termB, and makes a simple BooleanQuery as he do |> in the case of a whitespace delimiter? | | You'll find they both go through getFieldQuery() as-is. The default | implementation of that runs the string through the analyser; if it happens to | return more than one token then it will create a PhraseQuery instead of a | TermQuery. | | If you subclass QueryParser than you can override this method and modify it to | do whatever evil trick you want to do. | | Daniel | | --------------------------------------------------------------------- | To unsubscribe, e-mail: [EMAIL PROTECTED] | For additional commands, e-mail: [EMAIL PROTECTED] | | -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.4-svn0 (GNU/Linux) iD8DBQFHxBkMQoTr50f1tpcRAq1aAJ9jxYa7jXF5M9iuTcjRNBCSA2cpkACfdOiV jPrqqbiGvjhMDm3EIi9Eyw4= =KArL -----END PGP SIGNATURE----- --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]