-----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]

Reply via email to