Lucene 模模糊糊检索结果不正确
Lucene 模糊检索结果不正确
环境:Lucene 3.0.1 从数据库里抽取了一些记录用lucene进行索引并检索。现在的问题是检索结果集中有些记录不应该出现。程序和检索结果如下。新手上路,麻烦帮看看:
public class DBLuceneSearch
{
public static void main(String[] args) throws CorruptIndexException, IOException
{
TopDocs hits = null;
String index = "D:\\workspace\\lucnentest\\dbindex"; //索引位置
String field = "title"; // 查询字段
String queryString = "science";
//Query query = null;
FuzzyQuery query = null;
IndexReader reader = IndexReader.open(FSDirectory.open(new File(index)), false);
Searcher searcher = new IndexSearcher(reader);
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30);
try
{
/***** 下面将进行多种检索方式的实验 *****/
/***** 1、一个关键字,对一个字段进行查询 *****/
//QueryParser qp = new QueryParser(Version.LUCENE_30, field, analyzer);
//query = qp.parse(queryString);
/***** 2、模糊查询 *****/
Term term = new Term(field,queryString);
query = new FuzzyQuery(term);
}
catch(Exception e)
{
System.out.print(e);
}
if (searcher != null)
{
hits = searcher.search(query, 500);
if (hits.totalHits > 0)
{
System.out.println("找到" + hits.totalHits + " 个结果!");
}
}
ScoreDoc[] scoreDocs = hits.scoreDocs;
Document doc = null;
int i=0;
for( ScoreDoc sdoc : scoreDocs )
{
try{
int currIndex = sdoc.doc;
环境:Lucene 3.0.1 从数据库里抽取了一些记录用lucene进行索引并检索。现在的问题是检索结果集中有些记录不应该出现。程序和检索结果如下。新手上路,麻烦帮看看:
public class DBLuceneSearch
{
public static void main(String[] args) throws CorruptIndexException, IOException
{
TopDocs hits = null;
String index = "D:\\workspace\\lucnentest\\dbindex"; //索引位置
String field = "title"; // 查询字段
String queryString = "science";
//Query query = null;
FuzzyQuery query = null;
IndexReader reader = IndexReader.open(FSDirectory.open(new File(index)), false);
Searcher searcher = new IndexSearcher(reader);
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30);
try
{
/***** 下面将进行多种检索方式的实验 *****/
/***** 1、一个关键字,对一个字段进行查询 *****/
//QueryParser qp = new QueryParser(Version.LUCENE_30, field, analyzer);
//query = qp.parse(queryString);
/***** 2、模糊查询 *****/
Term term = new Term(field,queryString);
query = new FuzzyQuery(term);
}
catch(Exception e)
{
System.out.print(e);
}
if (searcher != null)
{
hits = searcher.search(query, 500);
if (hits.totalHits > 0)
{
System.out.println("找到" + hits.totalHits + " 个结果!");
}
}
ScoreDoc[] scoreDocs = hits.scoreDocs;
Document doc = null;
int i=0;
for( ScoreDoc sdoc : scoreDocs )
{
try{
int currIndex = sdoc.doc;