[
https://issues.apache.org/jira/browse/LUCENE-1486?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12733893#action_12733893
]
Mark Miller commented on LUCENE-1486:
-------------------------------------
You might check the test class - it has a few basic examples. Its not much
different than whats posted in the summary:
Just experiment.
+ checkMatches("\"john smith\"", "1"); // Simple multi-term still works
+ checkMatches("\"j* smyth~\"", "1,2"); // wildcards and fuzzies are OK in
+ // phrases
+ checkMatches("\"(jo* -john) smith\"", "2"); // boolean logic works
+ checkMatches("\"jo* smith\"~2", "1,2,3"); // position logic works.
+ checkMatches("\"jo* [sma TO smZ]\" ", "1,2"); // range queries supported
+ checkMatches("\"john\"", "1,3"); // Simple single-term still works
+ checkMatches("\"(john OR johathon) smith\"", "1,2"); // boolean logic with
+ // brackets works.
+ checkMatches("\"(jo* -john) smyth~\"", "2"); // boolean logic with
+ // brackets works.
+
+ // checkMatches("\"john -percival\"", "1"); // not logic doesn't work
+ // currently :(.
+
+ checkMatches("\"john nosuchword*\"", ""); // phrases with clauses
producing
+ // empty sets
+
+ checkBadQuery("\"jo* id:1 smith\""); // mixing fields in a phrase is bad
+ checkBadQuery("\"jo* \"smith\" \""); // phrases inside phrases is bad
> Wildcards, ORs etc inside Phrase queries
> ----------------------------------------
>
> Key: LUCENE-1486
> URL: https://issues.apache.org/jira/browse/LUCENE-1486
> Project: Lucene - Java
> Issue Type: Improvement
> Components: QueryParser
> Affects Versions: 2.4
> Reporter: Mark Harwood
> Assignee: Mark Harwood
> Priority: Minor
> Fix For: 2.9
>
> Attachments: ComplexPhraseQueryParser.java, LUCENE-1486.patch,
> LUCENE-1486.patch, LUCENE-1486.patch, LUCENE-1486.patch,
> TestComplexPhraseQuery.java
>
>
> An extension to the default QueryParser that overrides the parsing of
> PhraseQueries to allow more complex syntax e.g. wildcards in phrase queries.
> The implementation feels a little hacky - this is arguably better handled in
> QueryParser itself. This works as a proof of concept for much of the query
> parser syntax. Examples from the Junit test include:
> checkMatches("\"j* smyth~\"", "1,2"); //wildcards and fuzzies
> are OK in phrases
> checkMatches("\"(jo* -john) smith\"", "2"); // boolean logic
> works
> checkMatches("\"jo* smith\"~2", "1,2,3"); // position logic
> works.
>
> checkBadQuery("\"jo* id:1 smith\""); //mixing fields in a
> phrase is bad
> checkBadQuery("\"jo* \"smith\" \""); //phrases inside phrases
> is bad
> checkBadQuery("\"jo* [sma TO smZ]\" \""); //range queries
> inside phrases not supported
> Code plus Junit test to follow...
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]