DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16730>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16730 ESCAPING BUG \(abc\) and \(a*c\) in v1.2 Summary: ESCAPING BUG \(abc\) and \(a*c\) in v1.2 Product: Lucene Version: 1.2 Platform: All OS/Version: Windows XP Status: NEW Severity: Major Priority: Other Component: QueryParser AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] PLEASE TEST THIS CODE: ---------------------------------------------- import junit.framework.*; import org.apache.lucene.index.*; import org.apache.lucene.analysis.*; import org.apache.lucene.analysis.standard.*; import org.apache.lucene.store.*; import org.apache.lucene.document.*; import org.apache.lucene.search.*; import org.apache.lucene.queryParser.*; /** * Escape bug (now with same analyzers). By [EMAIL PROTECTED] * Here is the description: * * When searching for \(abc\) everything is ok. But let`s search for: \(a?c\) * YES! Nothing found! It`s same with \" and maybe other escaped characters. * * User: Lukas Zapletal * Date: Feb 1, 2003 * * JUnit test case follows: */ public class juEscapeBug extends TestCase { Directory dir = new RAMDirectory(); String testText = "This is a test. (abc) Is there a bug OR not? \"Question\"!"; public juEscapeBug(String tn) { super(tn); } protected void setUp() throws Exception { IndexWriter writer = new IndexWriter(dir, new StandardAnalyzer(), true); Document doc = new Document(); doc.add(Field.Text("contents", testText)); writer.addDocument(doc); writer.optimize(); writer.close(); } private boolean doQuery(String queryString) throws Exception { Searcher searcher = new IndexSearcher(dir); Analyzer analyzer = new StandardAnalyzer(); Query query = QueryParser.parse(queryString, "contents", analyzer); Hits hits = searcher.search(query); searcher.close(); return (hits.length() == 1); } public void testBugOk1() throws Exception { assertTrue(doQuery("Test")); } public void testBugOk2() throws Exception { assertFalse(doQuery("This is not there")); } public void testBugOk3() throws Exception { assertTrue(doQuery("abc")); } public void testBugOk4() throws Exception { assertTrue(doQuery("\\(abc\\)")); } public void testBugHere1() throws Exception { assertTrue(doQuery("\\(a?c\\)")); // BUG HERE !!! } public void testBugHere2() throws Exception { assertTrue(doQuery("\\(a*\\)")); // BUG HERE !!! } public void testBugHere3() throws Exception { assertTrue(doQuery("\\\"qu*on\\\"")); // BUG HERE !!! } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
