出错的信息为:
建立搜索引擎
建立搜索域和分析器
Exception in thread "main" org.apache.lucene.queryParser.ParseException: Encountered "<EOF>" at line 1, column 0.
Was expecting one of:
<NOT> ...
"+" ...
"-" ...
"(" ...
"*" ...
<QUOTED> ...
<TERM> ...
<PREFIXTERM> ...
<WILDTERM> ...
"[" ...
"{" ...
<NUMBER> ...
at org.apache.lucene.queryParser.QueryParser.generateParseException(QueryParser.java:1485)
at org.apache.lucene.queryParser.QueryParser.jj_consume_token(QueryParser.java:1365)
at org.apache.lucene.queryParser.QueryParser.Clause(QueryParser.java:997)
at org.apache.lucene.queryParser.QueryParser.Query(QueryParser.java:907)
at fangLucene.TwoLucene.main(TwoLucene.java:86)
其lucene应用代码为:
package fangLucene;
import org.apache.lucene.analysis.SimpleAnalyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.DriverManager;
public class TwoLucene {
public static ResultSet rs = null;
public static Statement statement = null;
public static Connection con = null;
public TwoLucene() throws Exception{
}
/**
* @param args
*/
public static void main(String[] args) throws Exception{
Directory directory = FSDirectory.getDirectory("D:\\luceneIndex");
/** 建索 */
IndexWriter indexWriter = new IndexWriter(directory,new SimpleAnalyzer(),true);
indexWriter.setMaxFieldLength(250000);
indexWriter.setMergeFactor(100);
System.out.println("开始取数据");
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
System.out.println("已装载驱动");
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=lssDB","sa","1234");
System.out.println("已连接上数据库");
statement = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs = statement.executeQuery("select databankid,TitleName,mostlycontent,lastDate from tabmdatabank");
System.out.println("已读取数据集");
String id,title,content,date;
int j=0;
while(rs.next()){
Document doc = new Document();
id = rs.getString(1);
title =rs.getString(2);
content = rs.getString(3);
date = rs.getString(4);
if(id == null)
id = "";
if(title == null)
title = "";
if(content == null )
content = "";
if(date == null)
date = "";
doc.add(new Field("dbid",id,Field.Store.YES,Field.Index.UN_TOKENIZED));
doc.add(new Field("title",title,Field.Store.YES,Field.Index.TOKENIZED,Field.TermVector.YES));
doc.add(new Field("content",content,Field.Store.NO,Field.Index.TOKENIZED,Field.TermVector.YES));
doc.add(new Field("date",date,Field.Store.COMPRESS,Field.Index.TOKENIZED));
indexWriter.addDocument(doc);
System.out.println("已添加"+(++j)+"doc,其ID为:"+id);
}
indexWriter.optimize();
rs.close();
statement.close();
con.close();
System.out.println("结束取数据");
indexWriter.close();
System.out.println("已生成所有数据索引");
//*********************************************************************
/** 搜索 */
IndexReader reader = IndexReader.open(directory);
IndexSearcher indexSearcher = new IndexSearcher(reader);
System.out.println("建立搜索引擎");
QueryParser parser = new QueryParser("content",new SimpleAnalyzer());
System.out.println("建立搜索域和分析器");
Query query = parser.Query("劳动法律");
System.out.println("提供搜索内容");
Hits hits = indexSearcher.search(query);
System.out.println("进行搜索并返回数据集");
for(int i=0;i<hits.length();i++){
Document doc = hits.doc(i);
System.out.println(doc.get("title"));
}
System.out.println("取得查询数据标题");
directory.close();
indexSearcher.close();
System.out.println("关闭搜索器");
}
public static void getCon() throws Exception{
}
public static void getStatement() throws Exception{
}
}
分享到:
- 2007-07-30 14:07
- 浏览 3065
- 评论(5)
- 论坛回复 / 浏览 (5 / 6093)
- 查看更多
相关推荐
var lucene_parser = require ( 'lucene-parser' ) lucene_parser . setSearchTerm ( "hello:there i am a-test-string that.should.become lucne_friendly" ) ; console . log ( lucene_parser . ...
SSM+LUCENE小项目!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!...
lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例
Lucene查询解析器 Lucene查询字符串解析器,用作Web api查询或过滤器字符串。 基本代码来自 ...composer require "smallhomelab/lucene-query-parser" 用法 $ parseTree = ( new LucenenQueryParser \
lucene3.0.3搜索的使用示例lucene3.0.3搜索的使用示例lucene3.0.3搜索的使用示例
lucene3.6 搜索例子
最后,虽然Lucene使用Java语言写成,但是开放源代码社区的程序员正在不懈的将之使用各种传统语言实现(例如.net framework[14]),在遵守Lucene索引文件格式的基础上,使得Lucene能够运行在各种各样的平台上,系统...
lucene,lucene教程,lucene讲解。 为了对文档进行索引,Lucene 提供了五个基础的类 public class IndexWriter org.apache.lucene.index.IndexWriter public abstract class Directory org.apache.lucene.store....
实例是一个java实例,可直接导入到MyEclipse中...其中是lucene3.0整合了庖丁解牛分词法,添加了高亮显示。因为lucene3.0无法整合paoding-analysis.jar 所以我已经把paoding-analysis中的源码整合进来了避免无法整合问题
lucene学习教程lucene讲义 叫你用lucene算法
c#下实现Lucene时间区间查询匹配。主要还是对Lucene查循对像Query的实现
ssh+lucene搜索实例
Lucene实现全文搜索,支持英文、模糊和智能查询
lucene
庖丁解牛(很好的分词效率) 在做站内全文检索时创建索引时比较快,而且感觉效果比JE要好一些。。
Lucene 庖丁解牛分词法 , 能够使用它解决中文分词问题。
lucene 搜索中文文档,写的比较详细
lucene 近实时搜索 很清楚的解释了关于lucene近实时搜索的代码。很值得学习
主要是关于lucene站内搜索的技术代码,可以使用;按照需要进行代码修改。
别看分多,真正的实用程序,让你一下对lucene的项目源码,让你用lucene做引擎更容易