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=16677>. 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=16677 Escape bug Summary: Escape bug Product: Lucene Version: 1.2 Platform: All OS/Version: Windows XP Status: NEW Severity: Normal Priority: Other Component: QueryParser AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] package cz.finesoft.socd; 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. Please report solutions on [EMAIL PROTECTED], thanks. * Here is the description: * * When searching for \(1\) everything is ok. But let`s search for: \(?\) * 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 SimpleAnalyzer(), 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]