lucene建立索引的错误,各位帮忙看看

jaie 2008-04-06
前面打印的部分是显示从Google获取的内容,可以正常显示,现在要对这些内容进行索引,但在搜索过程总是显示java.lang.IndexOutOfBoundsException: Not a valid hit number: 0,看来是索引建立好,请大家帮忙看看


//开始建立索引 
int j = 0;
while (j < 10) {

gs.setStartResult(j);

try {
GoogleSearchResult gsr = gs.doSearch();
System.out.println("======================");
GoogleSearchResultElement[] gsreList = gsr.getResultElements();
for (int i = 0; i < gsreList.length; i++) {
GoogleSearchResultElement gsre = gsreList[i];
System.out.println("Title : " + gsre.getTitle());
System.out.println("URL : " + gsre.getURL());
System.out.println("Snippet: " + gsre.getSnippet());
System.out.println("Summary: " + gsre.getSummary());
System.out.println(i);
System.out.println("======================");

//为每个网页创建一个新的Document
Document doc = new Document();
//为每个网页标题创建一个Field
Field field = new Field ("title", gsre.getTitle(),
Field.Store.YES, Field.Index.TOKENIZED);
doc.add(field);

//为每个网页地址创建一个Field
field= new Field("url", gsre.getURL(),
Field.Store.YES, Field.Index.TOKENIZED);
doc.add(field);

    //为每个网页的片段建立一个Field
field= new Field("sinppet", gsre.getSnippet(),
Field.Store.YES, Field.Index.TOKENIZED);
doc.add(field);
//把 Document加入IndexWriter
writer.addDocument(doc);
System.out.println("把Document加入IndexWriter");

}
j = j + 10;

} catch (GoogleSearchFault gsf) {
System.out.println("The call to the Google Web APIs failed: "
+ gsf.toString());
}

}

writer.close();
}catch(IOException e){
e.printStackTrace();
}
jaie 2008-04-06
没人回,顶,急着,大家看看,下面是我搜索的测试代码           try {
System.out.println("开始搜索索引");
IndexSearcher searcher = new IndexSearcher(INDEX_STORE_PATH);
Term t = new Term("sinppet", "奥运会");
Query query = new TermQuery(t);
Hits hits = searcher.search(query);
System.out.println(hits.length() + " total results");


for (int i = 0; i <= hits.length(); i++) {
System.out.println(i);
System.out.println("结果:" + hits.doc(i));
System.out.println("在输出结果的循环中间");
System.out.println(hits.score(i));
System.out.println(i);
}
} catch (Exception e) {
e.printStackTrace();
}
}
jaie 2008-04-06
结果出现了这样的错误  
开始搜索索引
0 total results
0
java.lang.IndexOutOfBoundsException: Not a valid hit number: 0
chencang 2008-04-07
1、既然hits.length已经为0了,为什么还要循环呢?那样肯定是出现异常吧
2、会不会你采集的这些数据里面就没有“奥运”这个关键词,从而hits.length=0
3、没看见你的writer(IndexWriter)的声明部分代码,用的什么分词呢?
jaie 2008-04-07
thanks chencang, 果然是分词器的问题,修改代码时临时把分词器换了,后来换成je分词就好了.
Global site tag (gtag.js) - Google Analytics