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分词就好了.
|