将WebLucene中的lucene部分升级到2.1
将WebLucene中的lucene部分升级到2.1
目前升级失败,原因是车东的SAXIndexer.java文件中调用Field类的实例化方法并不能在lucene的Field.java中并不能找到相应的构造函数。。。希望知道解决方法的朋友可以指导我一下。。。
首先编译java环境和resin,怎么搞,可以参考我的:
www.taoer.com/2005/12/31/linux-lamp-lucene-server-awstats/
但是。。。麻烦遇到了。。。
解压缩lucene-2.1.0-src.tar.gz
找到lucene-2.1.0/src/java/org
这个目录下面的dd就是待会儿咱们需要覆盖的dd了哈。。。
还是先将weblucene解压缩到/usr/local/resin/webapps
因为对java的build不甚了解,也不知道是替换哪个目录的文件,所以就将所有含有org/apache/lucene的全部替换成新的lucene2.1吧。。。
进入weblucene的目录,
#find ./ apache | grep apache
发现共有如下两个目录需要替换
./webapp/WEB-INF/src/org/apache
./webapp/WEB-INF/build/org/apache
然后将lucene的包解压缩覆盖到weblucene的上面的两个目录吧。
如果想把原来weblucene的自带的lucene部分进行备份,建议备份到weblucene的目录之外,
似乎build的时候会build所有子目录。。。所以可能会出现class重复的报错儿。。。
#rm -rf ./org
#cp -R /root/sss/lucene-2.1.0/src/java/org ./
#rm -rf ./org
#cp -R /root/sss/lucene-2.1.0/src/java/org ./
然后执行退到/usr/local/resin/webapps目录
配置build,具体如何配置,可以参考这里:
www.taoer.com/2005/12/31/linux-lamp-lucene-server-awstats/ 的配置build的部分
接着执行
#ant build
好么。。。报告了一大堆错误~~~
Buildfile: build.xml
init:
[echo] ———– WebLucene 0.5 [2003 -2004] ————
javacc_check:
javacc:
prepare-src:
[copy] Copying 13 files to /usr/local/resin/webapps/webapp/WEB-INF/build
build:
[javac] Compiling 229 source files to /usr/local/resin/webapps/webapp/WEB-INF/classes
[javac] /usr/local/resin/webapps/webapp/WEB-INF/build/org/apache/lucene/search/spans/NearSpansOrdered.java:163: warning: as of release 1.4, assert is a keyword, and may not be used as an identifier
[javac] assert (subSpansByDoc[i].doc() == maxDoc)
[javac] ^
[javac] /usr/local/resin/webapps/webapp/WEB-INF/build/org/apache/lucene/search/spans/NearSpansOrdered.java:164: ‘;’ expected
[javac] : ” NearSpansOrdered.toSameDoc() spans ” + subSpansByDoc[0]
[javac] ^
[javac] /usr/local/resin/webapps/webapp/WEB-INF/build/org/apache/lucene/search/spans/NearSpansOrdered.java:180: warning: as of release 1.4, assert is a keyword, and may not be used as an identifier
[javac] assert spans1.doc() == spans2.doc() : “doc1 ” + spans1.doc() + ” != doc2 ” + spans2.doc();
[javac] ^
[javac] /usr/local/resin/webapps/webapp/WEB-INF/build/org/apache/lucene/search/spans/NearSpansOrdered.java:180: ‘;’ expected
[javac] assert spans1.doc() == spans2.doc() : “doc1 ” + spans1.doc() + ” != doc2 ” + spans2.doc();
[javac] ^
[javac] /usr/local/resin/webapps/webapp/WEB-INF/build/org/apache/lucene/search/spans/NearSpansOrdered.java:247: warning: as of release 1.4, assert is a keyword, and may not be used as an identifier
[javac] assert prevStart <= matchStart;
[javac] ^
[javac] /usr/local/resin/webapps/webapp/WEB-INF/build/org/apache/lucene/search/spans/NearSpansOrdered.java:247: ';' expected
[javac] assert prevStart <= matchStart;
[javac] ^
[javac] 3 errors
[javac] 3 warnings
BUILD FAILED
/usr/local/resin/webapps/build.xml:134: Compile failed; see the compiler error output for details.
看了看。。。上网上搜了一下。原来是需要jdk1.5的环境。。。
那么就把java升级到1.5,顺便resin升级到3.1吧。。。
其中编译jdk1.5和resin3的时候遇到了一些小麻烦
我是这么解决的:
www.taoer.com/2007/06/08/java-jdk-resin-install-note/
接着重新
#ant build
然后还是不消停~~~
错误仍然不断。。。
BUILD FAILED
/usr/local/resin/webapps/weblucene/build.xml:107: Invalid target: /usr/local/resin/webapps/weblucene/webapp/WEB-INF/src/org/apache/lucene/queryParser/SimpleQueryParser.jj
似乎是提示找不到文件。于是乎,把刚才备份的org/apache/lucene/queryParser里面与现有目录不冲突的全都copy进来。。。
然后再!!!
#ant build
结果在我的预料之中,还tmd报错!!!
Buildfile: build.xml
init:
[echo] ———– WebLucene 0.5 [2003 -2004] ————
javacc_check:
javacc:
[javacc] Java Compiler Compiler Version 2.1 (Parser Generator)
[javacc] Copyright (c) 1996-2001 Sun Microsystems, Inc.
[javacc] Copyright (c) 1997-2001 WebGain, Inc.
[javacc] (type “javacc” with no arguments for help)
[javacc] Reading from file /usr/local/resin/webapps/weblucene/webapp/WEB-INF/src/org/apache/lucene/queryParser/SimpleQueryParser.jj . . .
[javacc] Warning: TokenMgrError.java: File is obsolete. Please rename or delete this file so that a new one can be generated for you.
[javacc] Warning: ParseException.java: File is obsolete. Please rename or delete this file so that a new one can be generated for you.
[javacc] Warning: Token.java: File is obsolete. Please rename or delete this file so that a new one can be generated for you.
[javacc] File “TokenManager.java” does not exist. Will create one.
[javacc] Parser generated with 0 errors and 3 warnings.
prepare-src:
[copy] Copying 221 files to /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build
build:
[javac] Compiling 234 source files to /usr/local/resin/webapps/weblucene/webapp/WEB-INF/classes
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/queryParser/SimpleQueryParser.java:397: as of release 1.5, ‘enum’ is a keyword, and may not be used as an identifier
[javac] (try -source 1.4 or lower to use ‘enum’ as an identifier)
[javac] for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) {
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/queryParser/SimpleQueryParser.java:397: as of release 1.5, ‘enum’ is a keyword, and may not be used as an identifier
[javac] (try -source 1.4 or lower to use ‘enum’ as an identifier)
[javac] for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) {
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/queryParser/SimpleQueryParser.java:398: as of release 1.5, ‘enum’ is a keyword, and may not be used as an identifier
[javac] (try -source 1.4 or lower to use ‘enum’ as an identifier)
[javac] int[] oldentry = (int[])(enum.nextElement());
[javac] ^
[javac] 3 errors
BUILD FAILED
/usr/local/resin/webapps/weblucene/build.xml:134: Compile failed; see the compiler error output for details.
错误分为两个部分,3个warnings 和 3个errors
先解决errors
说是什么在java1.5中 enum是个关键字
解决方法参考了这里:
www.phpchina.com/bbs/archiver/tid-6945.html
#vi /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/queryParser/SimpleQueryParser.java
然后执行:
:%s/enum/newenum/g
保存退出。
我还
#ant build
开始有些小烦躁了。。。但是还不是很烦躁~~~
build:
[javac] Compiling 234 source files to /usr/local/resin/webapps/weblucene/webapp/WEB-INF/classes
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/IndexRunner.java:62: package org.apache.lucene.analysis.cjk does not exist
[javac] import org.apache.lucene.analysis.cjk.CJKAnalyzer;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/SearchRunner.java:58: package org.apache.lucene.analysis.cjk does not exist
[javac] import org.apache.lucene.analysis.cjk.CJKAnalyzer;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/SearchRunner.java:62: cannot find symbol
[javac] symbol : class IndexOrderSearcher
[javac] location: package org.apache.lucene.search
[javac] import org.apache.lucene.search.IndexOrderSearcher;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/DOMSearcher.java:66: package org.apache.lucene.analysis.cjk does not exist
[javac] import org.apache.lucene.analysis.cjk.CJKAnalyzer;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneHighlighter.java:59: cannot find symbol
[javac] symbol : class HighlightAnalyzer
[javac] location: package org.apache.lucene.analysis
[javac] import org.apache.lucene.analysis.HighlightAnalyzer;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneHighlighter.java:77: cannot find symbol
[javac] symbol : class HighlightAnalyzer
[javac] location: class com.chedong.weblucene.search.WebLuceneHighlighter
[javac] private HighlightAnalyzer analyzer = null;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneSearcherBase.java:62: package org.apache.lucene.analysis.cjk does not exist
[javac] import org.apache.lucene.analysis.cjk.CJKAnalyzer;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneSearcherBase.java:67: cannot find symbol
[javac] symbol : class IndexOrderSearcher
[javac] location: package org.apache.lucene.search
[javac] import org.apache.lucene.search.IndexOrderSearcher;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/IndexRunner.java:217: cannot find symbol
[javac] symbol : class CJKAnalyzer
[javac] location: class IndexRunner
[javac] CJKAnalyzer analyzer = new CJKAnalyzer();
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/IndexRunner.java:217: cannot find symbol
[javac] symbol : class CJKAnalyzer
[javac] location: class IndexRunner
[javac] CJKAnalyzer analyzer = new CJKAnalyzer();
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/IndexRunner.java:223: mergeFactor has private access in org.apache.lucene.index.IndexWriter
[javac] indexWriter.mergeFactor = mergeFactor;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/SearchRunner.java:84: cannot find symbol
[javac] symbol : class CJKAnalyzer
[javac] location: class SearchRunner
[javac] private static Analyzer analyzer = new CJKAnalyzer();
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/SearchRunner.java:189: cannot find symbol
[javac] symbol : class IndexOrderSearcher
[javac] location: class SearchRunner
[javac] Searcher searcher = new IndexOrderSearcher(indexDir, order);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/WebLuceneAdminServlet.java:207: cannot find symbol
[javac] symbol : method delete(int)
[javac] location: class org.apache.lucene.index.IndexReader
[javac] reader.delete(docId);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/index/SAXIndexer.java:413: cannot find symbol
[javac] symbol : constructor Field(java.lang.String,java.lang.String,boolean,boolean,boolean)
[javac] location: class org.apache.lucene.document.Field
[javac] luceneField = new Field(fieldName, fieldValue.toString(),
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/index/SAXIndexer.java:577: cannot find symbol
[javac] symbol : constructor Field(java.lang.String,java.lang.String,boolean,boolean,boolean)
[javac] location: class org.apache.lucene.document.Field
[javac] Field newIndex = new Field(indexName,
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/DOMSearcher.java:104: cannot find symbol
[javac] symbol : class CJKAnalyzer
[javac] location: class com.chedong.weblucene.search.DOMSearcher
[javac] private static Analyzer analyzer = new CJKAnalyzer();
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneHighlighter.java:119: cannot find symbol
[javac] symbol : class HighlightAnalyzer
[javac] location: class com.chedong.weblucene.search.WebLuceneHighlighter
[javac] analyzer = new HighlightAnalyzer(terms);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneSearcherBase.java:100: cannot find symbol
[javac] symbol : class CJKAnalyzer
[javac] location: class com.chedong.weblucene.search.WebLuceneSearcherBase
[javac] private static Analyzer analyzer = new CJKAnalyzer();
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneSearcherBase.java:165: cannot find symbol
[javac] symbol : variable IndexOrderSearcher
[javac] location: class com.chedong.weblucene.search.WebLuceneSearcherBase
[javac] int sortType = IndexOrderSearcher.ORDER_BY_DOCID_DESC;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneSearcherBase.java:168: cannot find symbol
[javac] symbol : variable IndexOrderSearcher
[javac] location: class com.chedong.weblucene.search.WebLuceneSearcherBase
[javac] sortType = IndexOrderSearcher.ORDER_BY_DOCID_DESC;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneSearcherBase.java:170: cannot find symbol
[javac] symbol : variable IndexOrderSearcher
[javac] location: class com.chedong.weblucene.search.WebLuceneSearcherBase
[javac] sortType = IndexOrderSearcher.ORDER_BY_SCORE;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneSearcherBase.java:173: cannot find symbol
[javac] symbol : class IndexOrderSearcher
[javac] location: class com.chedong.weblucene.search.WebLuceneSearcherBase
[javac] searcher = new IndexOrderSearcher(indexPath, sortType);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/queryParser/SimpleQueryParser.java:173: cannot find symbol
[javac] symbol : variable required
[javac] location: class org.apache.lucene.search.BooleanClause
[javac] clause.required = true; // require it
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/queryParser/SimpleQueryParser.java:179: cannot find symbol
[javac] symbol : constructor BooleanClause(org.apache.lucene.search.Query,boolean,boolean)
[javac] location: class org.apache.lucene.search.BooleanClause
[javac] clauses.addElement(new BooleanClause(subQuery, required, prohibited));
[javac] ^
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 25 errors
BUILD FAILED
/usr/local/resin/webapps/weblucene/build.xml:134: Compile failed; see the compiler error output for details.
看来这次的错误大致的提示是:
/usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/IndexRunner.java:62: package org.apache.lucene.analysis.cjk does not exist
找不到cjk这个包,简单,也就是说还是要copy。
cp -R /root/weblucene/webapp/WEB-INF/src/org/apache/lucene/analysis/cjk/ /usr/local/resin/webapps/weblucene/webapp/WEB-INF/src/org/apache/lucene/analysis/
再#ant build
接着报错。。。
这次
build:
[javac] Compiling 236 source files to /usr/local/resin/webapps/weblucene/webapp/WEB-INF/classes
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/SearchRunner.java:62: cannot find symbol
[javac] symbol : class IndexOrderSearcher
[javac] location: package org.apache.lucene.search
[javac] import org.apache.lucene.search.IndexOrderSearcher;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneHighlighter.java:59: cannot find symbol
[javac] symbol : class HighlightAnalyzer
[javac] location: package org.apache.lucene.analysis
[javac] import org.apache.lucene.analysis.HighlightAnalyzer;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneHighlighter.java:77: cannot find symbol
[javac] symbol : class HighlightAnalyzer
[javac] location: class com.chedong.weblucene.search.WebLuceneHighlighter
[javac] private HighlightAnalyzer analyzer = null;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneSearcherBase.java:67: cannot find symbol
[javac] symbol : class IndexOrderSearcher
[javac] location: package org.apache.lucene.search
[javac] import org.apache.lucene.search.IndexOrderSearcher;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/IndexRunner.java:223: mergeFactor has private access in org.apache.lucene.index.IndexWriter
[javac] indexWriter.mergeFactor = mergeFactor;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/SearchRunner.java:189: cannot find symbol
[javac] symbol : class IndexOrderSearcher
[javac] location: class SearchRunner
[javac] Searcher searcher = new IndexOrderSearcher(indexDir, order);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/WebLuceneAdminServlet.java:207: cannot find symbol
[javac] symbol : method delete(int)
[javac] location: class org.apache.lucene.index.IndexReader
[javac] reader.delete(docId);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/index/SAXIndexer.java:413: cannot find symbol
[javac] symbol : constructor Field(java.lang.String,java.lang.String,boolean,boolean,boolean)
[javac] location: class org.apache.lucene.document.Field
[javac] luceneField = new Field(fieldName, fieldValue.toString(),
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/index/SAXIndexer.java:577: cannot find symbol
[javac] symbol : constructor Field(java.lang.String,java.lang.String,boolean,boolean,boolean)
[javac] location: class org.apache.lucene.document.Field
[javac] Field newIndex = new Field(indexName,
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneHighlighter.java:119: cannot find symbol
[javac] symbol : class HighlightAnalyzer
[javac] location: class com.chedong.weblucene.search.WebLuceneHighlighter
[javac] analyzer = new HighlightAnalyzer(terms);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneSearcherBase.java:165: cannot find symbol
[javac] symbol : variable IndexOrderSearcher
[javac] location: class com.chedong.weblucene.search.WebLuceneSearcherBase
[javac] int sortType = IndexOrderSearcher.ORDER_BY_DOCID_DESC;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneSearcherBase.java:168: cannot find symbol
[javac] symbol : variable IndexOrderSearcher
[javac] location: class com.chedong.weblucene.search.WebLuceneSearcherBase
[javac] sortType = IndexOrderSearcher.ORDER_BY_DOCID_DESC;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneSearcherBase.java:170: cannot find symbol
[javac] symbol : variable IndexOrderSearcher
[javac] location: class com.chedong.weblucene.search.WebLuceneSearcherBase
[javac] sortType = IndexOrderSearcher.ORDER_BY_SCORE;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneSearcherBase.java:173: cannot find symbol
[javac] symbol : class IndexOrderSearcher
[javac] location: class com.chedong.weblucene.search.WebLuceneSearcherBase
[javac] searcher = new IndexOrderSearcher(indexPath, sortType);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/analysis/cjk/CJKAnalyzer.java:102: cannot find symbol
[javac] symbol : method makeStopTable(java.lang.String[])
[javac] location: class org.apache.lucene.analysis.StopFilter
[javac] stopTable = StopFilter.makeStopTable(stopWords);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/analysis/cjk/CJKAnalyzer.java:111: cannot find symbol
[javac] symbol : method makeStopTable(java.lang.String[])
[javac] location: class org.apache.lucene.analysis.StopFilter
[javac] stopTable = StopFilter.makeStopTable(stopWords);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/analysis/cjk/CJKAnalyzer.java:125: cannot find symbol
[javac] symbol : constructor StopFilter(org.apache.lucene.analysis.cjk.CJKTokenizer,java.util.Hashtable)
[javac] location: class org.apache.lucene.analysis.StopFilter
[javac] return new StopFilter(new CJKTokenizer(reader), stopTable);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/queryParser/SimpleQueryParser.java:173: cannot find symbol
[javac] symbol : variable required
[javac] location: class org.apache.lucene.search.BooleanClause
[javac] clause.required = true; // require it
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/queryParser/SimpleQueryParser.java:179: cannot find symbol
[javac] symbol : constructor BooleanClause(org.apache.lucene.search.Query,boolean,boolean)
[javac] location: class org.apache.lucene.search.BooleanClause
[javac] clauses.addElement(new BooleanClause(subQuery, required, prohibited));
[javac] ^
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 19 errors
BUILD FAILED
/usr/local/resin/webapps/weblucene/build.xml:134: Compile failed; see the compiler error output for details.
Total time: 3 seconds
看来是找不到 HighlightAnalyzer 这个dd
没事。。。咱们再copy。。。
cp /usr/local/resin/webapps/weblucene1/webapp/WEB-INF/src/org/apache/lucene/analysis/Highlight* /usr/local/resin/webapps/weblucene/webapp/WEB-INF/src/org/apache/lucene/analysis/
咱们接着
#ant build
build:
[javac] Compiling 238 source files to /usr/local/resin/webapps/weblucene/webapp/WEB-INF/classes
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/SearchRunner.java:62: cannot find symbol
[javac] symbol : class IndexOrderSearcher
[javac] location: package org.apache.lucene.search
[javac] import org.apache.lucene.search.IndexOrderSearcher;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneSearcherBase.java:67: cannot find symbol
[javac] symbol : class IndexOrderSearcher
[javac] location: package org.apache.lucene.search
[javac] import org.apache.lucene.search.IndexOrderSearcher;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/IndexRunner.java:223: mergeFactor has private access in org.apache.lucene.index.IndexWriter
[javac] indexWriter.mergeFactor = mergeFactor;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/SearchRunner.java:189: cannot find symbol
[javac] symbol : class IndexOrderSearcher
[javac] location: class SearchRunner
[javac] Searcher searcher = new IndexOrderSearcher(indexDir, order);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/WebLuceneAdminServlet.java:207: cannot find symbol
[javac] symbol : method delete(int)
[javac] location: class org.apache.lucene.index.IndexReader
[javac] reader.delete(docId);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/index/SAXIndexer.java:413: cannot find symbol
[javac] symbol : constructor Field(java.lang.String,java.lang.String,boolean,boolean,boolean)
[javac] location: class org.apache.lucene.document.Field
[javac] luceneField = new Field(fieldName, fieldValue.toString(),
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/index/SAXIndexer.java:577: cannot find symbol
[javac] symbol : constructor Field(java.lang.String,java.lang.String,boolean,boolean,boolean)
[javac] location: class org.apache.lucene.document.Field
[javac] Field newIndex = new Field(indexName,
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneSearcherBase.java:165: cannot find symbol
[javac] symbol : variable IndexOrderSearcher
[javac] location: class com.chedong.weblucene.search.WebLuceneSearcherBase
[javac] int sortType = IndexOrderSearcher.ORDER_BY_DOCID_DESC;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneSearcherBase.java:168: cannot find symbol
[javac] symbol : variable IndexOrderSearcher
[javac] location: class com.chedong.weblucene.search.WebLuceneSearcherBase
[javac] sortType = IndexOrderSearcher.ORDER_BY_DOCID_DESC;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneSearcherBase.java:170: cannot find symbol
[javac] symbol : variable IndexOrderSearcher
[javac] location: class com.chedong.weblucene.search.WebLuceneSearcherBase
[javac] sortType = IndexOrderSearcher.ORDER_BY_SCORE;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/search/WebLuceneSearcherBase.java:173: cannot find symbol
[javac] symbol : class IndexOrderSearcher
[javac] location: class com.chedong.weblucene.search.WebLuceneSearcherBase
[javac] searcher = new IndexOrderSearcher(indexPath, sortType);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/analysis/cjk/CJKAnalyzer.java:102: cannot find symbol
[javac] symbol : method makeStopTable(java.lang.String[])
[javac] location: class org.apache.lucene.analysis.StopFilter
[javac] stopTable = StopFilter.makeStopTable(stopWords);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/analysis/cjk/CJKAnalyzer.java:111: cannot find symbol
[javac] symbol : method makeStopTable(java.lang.String[])
[javac] location: class org.apache.lucene.analysis.StopFilter
[javac] stopTable = StopFilter.makeStopTable(stopWords);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/analysis/cjk/CJKAnalyzer.java:125: cannot find symbol
[javac] symbol : constructor StopFilter(org.apache.lucene.analysis.cjk.CJKTokenizer,java.util.Hashtable)
[javac] location: class org.apache.lucene.analysis.StopFilter
[javac] return new StopFilter(new CJKTokenizer(reader), stopTable);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/queryParser/SimpleQueryParser.java:173: cannot find symbol
[javac] symbol : variable required
[javac] location: class org.apache.lucene.search.BooleanClause
[javac] clause.required = true; // require it
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/l cannot find symbol
[javac] symbol : constructor BooleanClause(org.apache.lucene.search.Query,b
[javac] location: class org.apache.lucene.search.BooleanClause
[javac] clauses.addElement(new BooleanClause(subQuery, required, proh
[javac] ^
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 16 errors
BUILD FAILED
/usr/local/resin/webapps/weblucene/build.xml:134: Compile failed; see the compil
Total time: 3 seconds
还好,错误又从19变成16个了。。。一个一个接着来解决。。。
这次是找不到了src/org/apache/lucene/search/IndexOrderSearcher.java 这个文件。。。
这里注意一下,
在老版本的weblucene中,search目录下只有IndexOrderSearcher.java而没有,在官方lucene下载的lucene包呢?正好相反,只有IndexSearcher.java而没有IndexOrderSearcher.java。。。
所以,再次copy吧。。。
cp /usr/local/resin/webapps/weblucene1/webapp/WEB-INF/src/org/apache/lucene/search/IndexOrderSearcher.java /usr/local/resin/webapps/weblucene/webapp/WEB-INF/src/org/apache/lucene/search/
接着
#ant build
还是错误。。。。
build:
[javac] Compiling 239 source files to /usr/local/resin/webapps/weblucene/webapp/WEB-INF/classes
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/IndexRunner.java:223: mergeFactor has private access in org.apache.lucene.index.IndexWriter
[javac] indexWriter.mergeFactor = mergeFactor;
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/WebLuceneAdminServlet.java:207: cannot find symbol
[javac] symbol : method delete(int)
[javac] location: class org.apache.lucene.index.IndexReader
[javac] reader.delete(docId);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/index/SAXIndexer.java:413: cannot find symbol
[javac] symbol : constructor Field(java.lang.String,java.lang.String,boolean,boolean,boolean)
[javac] location: class org.apache.lucene.document.Field
[javac] luceneField = new Field(fieldName, fieldValue.toString(),
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/index/SAXIndexer.java:577: cannot find symbol
[javac] symbol : constructor Field(java.lang.String,java.lang.String,boolean,boolean,boolean)
[javac] location: class org.apache.lucene.document.Field
[javac] Field newIndex = new Field(indexName,
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/analysis/cjk/CJKAnalyzer.java:102: cannot find symbol
[javac] symbol : method makeStopTable(java.lang.String[])
[javac] location: class org.apache.lucene.analysis.StopFilter
[javac] stopTable = StopFilter.makeStopTable(stopWords);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/analysis/cjk/CJKAnalyzer.java:111: cannot find symbol
[javac] symbol : method makeStopTable(java.lang.String[])
[javac] location: class org.apache.lucene.analysis.StopFilter
[javac] stopTable = StopFilter.makeStopTable(stopWords);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/analysis/cjk/CJKAnalyzer.java:125: cannot find symbol
[javac] symbol : constructor StopFilter(org.apache.lucene.analysis.cjk.CJKTokenizer,java.util.Hashtable)
[javac] location: class org.apache.lucene.analysis.StopFilter
[javac] return new StopFilter(new CJKTokenizer(reader), stopTable);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/queryParser/SimpleQueryParser.java:173: cannot find symbol
[javac] symbol : variable required
[javac] location: class org.apache.lucene.search.BooleanClause
[javac] clause.required = true; // require it
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/queryParser/SimpleQueryParser.java:179: cannot find symbol
[javac] symbol : constructor BooleanClause(org.apache.lucene.search.Query,boolean,boolean)
[javac] location: class org.apache.lucene.search.BooleanClause
[javac] clauses.addElement(new BooleanClause(subQuery, required, prohibited));
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/search/IndexOrderSearcher.java:157: cannot find symbol
[javac] symbol : constructor TopDocs(int,org.apache.lucene.search.ScoreDoc[])
[javac] location: class org.apache.lucene.search.TopDocs
[javac] return new TopDocs(0, new ScoreDoc[0]);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/search/IndexOrderSearcher.java:224: cannot find symbol
[javac] symbol : constructor TopDocs(int,org.apache.lucene.search.ScoreDoc[])
[javac] location: class org.apache.lucene.search.TopDocs
[javac] return new TopDocs(totalHits[0], scoreDocs);
[javac] ^
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 11 errors
BUILD FAILED
/usr/local/resin/webapps/weblucene/build.xml:134: Compile failed; see the compiler error output for details.
Total time: 3 seconds
呵呵。。。NB了。。这次给偶增加难度,错误升级了。。。
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/IndexRunner.java:223: mergeFactor has private access in org.apache.lucene.index.IndexWriter
[javac] indexWriter.mergeFactor = mergeFactor;
似乎说的是在IndexRunner.java调用了indexWriter的mefgeFactor,但是mergeFactor是私有的访问权限。。。
我不知道怎么修改最合适。。。那就给他修改成公有的吧。。。试试看还会不会报错我。。。。
于是呼。。。。
vi /usr/local/resin/webapps/weblucene/webapp/WEB-INF/src/org/apache/lucene/index/IndexWriter.java
找到这行:
private int mergeFactor = DEFAULT_MERGE_FACTOR;
修改成
public int mergeFactor = DEFAULT_MERGE_FACTOR;
呵呵。。。我又
#ant build
错误也又来也。。。
不过看来偶经受住了刚才小考验。。错误又少了一个。。。
build:
[javac] Compiling 239 source files to /usr/local/resin/webapps/weblucene/webapp/WEB-INF/classes
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/WebLuceneAdminServlet.java:207: cannot find symbol
[javac] symbol : method delete(int)
[javac] location: class org.apache.lucene.index.IndexReader
[javac] reader.delete(docId);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/index/SAXIndexer.java:413: cannot find symbol
[javac] symbol : constructor Field(java.lang.String,java.lang.String,boolean,boolean,boolean)
[javac] location: class org.apache.lucene.document.Field
[javac] luceneField = new Field(fieldName, fieldValue.toString(),
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/index/SAXIndexer.java:577: cannot find symbol
[javac] symbol : constructor Field(java.lang.String,java.lang.String,boolean,boolean,boolean)
[javac] location: class org.apache.lucene.document.Field
[javac] Field newIndex = new Field(indexName,
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/analysis/cjk/CJKAnalyzer.java:102: cannot find symbol
[javac] symbol : method makeStopTable(java.lang.String[])
[javac] location: class org.apache.lucene.analysis.StopFilter
[javac] stopTable = StopFilter.makeStopTable(stopWords);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/analysis/cjk/CJKAnalyzer.java:111: cannot find symbol
[javac] symbol : method makeStopTable(java.lang.String[])
[javac] location: class org.apache.lucene.analysis.StopFilter
[javac] stopTable = StopFilter.makeStopTable(stopWords);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/analysis/cjk/CJKAnalyzer.java:125: cannot find symbol
[javac] symbol : constructor StopFilter(org.apache.lucene.analysis.cjk.CJKTokenizer,java.util.Hashtable)
[javac] location: class org.apache.lucene.analysis.StopFilter
[javac] return new StopFilter(new CJKTokenizer(reader), stopTable);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/queryParser/SimpleQueryParser.java:173: cannot find symbol
[javac] symbol : variable required
[javac] location: class org.apache.lucene.search.BooleanClause
[javac] clause.required = true; // require it
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/queryParser/SimpleQueryParser.java:179: cannot find symbol
[javac] symbol : constructor BooleanClause(org.apache.lucene.search.Query,boolean,boolean)
[javac] location: class org.apache.lucene.search.BooleanClause
[javac] clauses.addElement(new BooleanClause(subQuery, required, prohibited));
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/search/IndexOrderSearcher.java:157: cannot find symbol
[javac] symbol : constructor TopDocs(int,org.apache.lucene.search.ScoreDoc[])
[javac] location: class org.apache.lucene.search.TopDocs
[javac] return new TopDocs(0, new ScoreDoc[0]);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/search/IndexOrderSearcher.java:224: cannot find symbol
[javac] symbol : constructor TopDocs(int,org.apache.lucene.search.ScoreDoc[])
[javac] location: class org.apache.lucene.search.TopDocs
[javac] return new TopDocs(totalHits[0], scoreDocs);
[javac] ^
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 10 errors
BUILD FAILED
/usr/local/resin/webapps/weblucene/build.xml:134: Compile failed; see the compiler error output for details.
Total time: 3 seconds
再来看看这个错误是啥意思。。。
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/WebLuceneAdminServlet.java:207: cannot find symbol
[javac] symbol : method delete(int)
[javac] location: class org.apache.lucene.index.IndexReader
[javac] reader.delete(docId);
恩。。似乎是说IndexReader这个类的delete这个方法找不到。。去查查看。。。
IndexReader
是这么导入的。。。
import org.apache.lucene.index.IndexReader;
那就去看IndexReader.java吧。。。
vi /usr/local/resin/webapps/weblucene/webapp/WEB-INF/src/org/apache/lucene/index/IndexReader.java
出乎意料的。。。果真没有delete方法。。。
咋办?不过发现了deleteDocument方法。。。难道是一个小bug???不应该吧。。。
不管那么多了。。。
先去了lucene.com.cn查了下lucene的api,有delete方法。。但是api的版本是1.4.3的。。。
难道lucene2的版本把这个方法给取消了?
又到了。。。
lucene.zones.apache.org:8080/hudson/job/Lucene-Nightly/javadoc/index.html
这里来查IndexReader类的方法。。。果真没有delete方法了。。。
然后参照两边的方法解释:
void deleteDocument(int docNum)
//Deletes the document numbered docNum.
void delete(int docNum)
//Deletes the document numbered docNum.
都是一样的。。。于是乎,打算在IndexReader.java中加入调用deleteDocument的delete方法。。。。以便兼容下。
但是当写好
- public final synchronized void delete(int docNum) throws IOException {
- if(directoryOwner)
- aquireWriteLock();
- hasChanges = true;
- doDelete(docNum);
- }
这段的挨骂时,vim的编辑器却吧delete显示为红色。。这个时候我想。。。难道是说java1.4中delete不是关键字
但是java1.5中delete变成了关键字或者保留字了?
这篇文章似乎也说明了这个问题。。。
www.javalobby.org/java/forums/t4380.html
没办法了。。。看来只能修改:
/usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/WebLuceneAdminServlet.java
这个如果以后车东要把weblucene升级的时候,也要注意一下了。。。
看来只能修改WebLuceneAdminServlet.java的文件第207行了。。。
找到两个文件:
/usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/WebLuceneAdminServlet.java
和
/usr/local/resin/webapps/weblucene/webapp/WEB-INF/src/com/chedong/weblucene/WebLuceneAdminServlet.java
都是在第207行,将
reader.delete(docId);
修改成
reader.deleteDocument(docId);
#ant build
我又来了。。错误也又来了哈。。。现在变成了 9 errors
成功的将错误减少到了一位数。。。
build:
[javac] Compiling 221 source files to /usr/local/resin/webapps/weblucene/webapp/WEB-INF/classes
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/index/SAXIndexer.java:413: cannot find symbol
[javac] symbol : constructor Field(java.lang.String,java.lang.String,boolean,boolean,boolean)
[javac] location: class org.apache.lucene.document.Field
[javac] luceneField = new Field(fieldName, fieldValue.toString(),
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/index/SAXIndexer.java:577: cannot find symbol
[javac] symbol : constructor Field(java.lang.String,java.lang.String,boolean,boolean,boolean)
[javac] location: class org.apache.lucene.document.Field
[javac] Field newIndex = new Field(indexName,
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/analysis/cjk/CJKAnalyzer.java:102: cannot find symbol
[javac] symbol : method makeStopTable(java.lang.String[])
[javac] location: class org.apache.lucene.analysis.StopFilter
[javac] stopTable = StopFilter.makeStopTable(stopWords);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/analysis/cjk/CJKAnalyzer.java:111: cannot find symbol
[javac] symbol : method makeStopTable(java.lang.String[])
[javac] location: class org.apache.lucene.analysis.StopFilter
[javac] stopTable = StopFilter.makeStopTable(stopWords);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/analysis/cjk/CJKAnalyzer.java:125: cannot find symbol
[javac] symbol : constructor StopFilter(org.apache.lucene.analysis.cjk.CJKTokenizer,java.util.Hashtable)
[javac] location: class org.apache.lucene.analysis.StopFilter
[javac] return new StopFilter(new CJKTokenizer(reader), stopTable);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/queryParser/SimpleQueryParser.java:173: cannot find symbol
[javac] symbol : variable required
[javac] location: class org.apache.lucene.search.BooleanClause
[javac] clause.required = true; // require it
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/queryParser/SimpleQueryParser.java:179: cannot find symbol
[javac] symbol : constructor BooleanClause(org.apache.lucene.search.Query,boolean,boolean)
[javac] location: class org.apache.lucene.search.BooleanClause
[javac] clauses.addElement(new BooleanClause(subQuery, required, prohibited));
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/search/IndexOrderSearcher.java:157: cannot find symbol
[javac] symbol : constructor TopDocs(int,org.apache.lucene.search.ScoreDoc[])
[javac] location: class org.apache.lucene.search.TopDocs
[javac] return new TopDocs(0, new ScoreDoc[0]);
[javac] ^
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/org/apache/lucene/search/IndexOrderSearcher.java:224: cannot find symbol
[javac] symbol : constructor TopDocs(int,org.apache.lucene.search.ScoreDoc[])
[javac] location: class org.apache.lucene.search.TopDocs
[javac] return new TopDocs(totalHits[0], scoreDocs);
[javac] ^
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 9 errors
BUILD FAILED
/usr/local/resin/webapps/weblucene/build.xml:134: Compile failed; see the compiler error output for details.
Total time: 3 seconds
来看看
[javac] /usr/local/resin/webapps/weblucene/webapp/WEB-INF/build/com/chedong/weblucene/index/SAXIndexer.java:413: cannot find symbol
[javac] symbol : constructor Field(java.lang.String,java.lang.String,boolean,boolean,boolean)
[javac] location: class org.apache.lucene.document.Field
[javac] luceneField = new Field(fieldName, fieldValue.toString(),
[javac] ^
问题出现在了
- case 3: //field level
- if ((fieldName != null) && (fieldName.length() > 0)) {
- luceneField = new Field(fieldName, fieldValue.toString(),
- storeTag, indexTag, tokenTag
- );
- currentDoc.add(luceneField);
- }
- break;
这块代码,根据 import org.apache.lucene.document.Field; 来看
vi /usr/local/resin/webapps/weblucene/webapp/WEB-INF/src/org/apache/lucene/document/Field.java
这下看出原因了。。。
原来lucene1.x的 Field的构造方法共和lucene2的构造方法不一样。。。
这下完蛋了。。。
luceneField = new Field(fieldName, fieldValue.toString(),
storeTag, indexTag, tokenTag
);
com/chedong/weblucene/index/SAXIndexer.java 这个文件调用Field的最后一个参数类型是boolean的。。。
但是
public Field(String name, String value, Store store, Index index, TermVector termVector){}
org/apache/lucene/document/Field.java这个文件里没有完全符合的构造函数。。。
不过。。。。
public Field(String name, String value, Store store, Index index) {
this(name, value, store, index, TermVector.NO);
}
看到了有这个函数,如果把SAXIndexer.java的最后一个参数给去掉改为调用这个函数呢?
试试看吧。。。
将SAXIndexer.java
从
luceneField = new Field(fieldName, fieldValue.toString(),
storeTag, indexTag, tokenTag
);
修改为:
luceneField = new Field(fieldName, fieldValue.toString(),
storeTag, indexTag
);
结果还是不行。。又看SAXIndexer.java,原来storeTag和indexTag也是传入的boolean类型的参数。。。
和Field.java的并不符合。。。
郁闷~~~
至此,这次升级暂时以失败告终,把过程写出来希望其他想升级的朋友借鉴一下。。。
有时间再搞搞吧。。。hoho~~~

[...] 将WebLucene中的lucene部分升级到2.1 [...]
If at first you don’t succeed…skydiving isn’t for you.
基于Lucene/XML的站内全文检索解决方案:WebLucene…
内容摘要: 为Lucene做一个通用XML接口一直是我最大的心愿:更方便的在WE……