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