Hello all,
I posted Escaping bug earlier to this list and bugzilla, but it was
rejected. I fixed the testing code, now it is created with same
StandardAnalyzers and the problem is still there. Can anybody help me?
Can anybody test it? Please help me it is important to me!
I`m also creating Bugzilla record too.
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 !!!
}
}
--
Lukas Zapletal [[EMAIL PROTECTED]]
http://www.tanecni-olomouc.cz/lzap
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
- Re: ESCAPING BUG \(abc\) and \(a*c\) in v1.2 Lukas Zapletal
- Re: ESCAPING BUG \(abc\) and \(a*c\) in v1.2 Otis Gospodnetic
