`
zoven
  • 浏览: 912 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
  • licco1: 我认为这里应该不是分析器Analyzer的缘故,因为index ...
    lucene问题
  • licco1: 介绍你个老外弄的Luke,可以查看你索引文件里的内容。另外你的 ...
    lucene问题
  • zoven: field都改成小写也还是不行,我用的是lucene2.2的, ...
    lucene问题
  • javaeyes: 哈哈,估计你的索引字段名都是大写的,但是查询的时候用查询词是要 ...
    lucene问题

lucene问题

阅读更多
索引已经建立,但就是检索不到数据。hits.length()一直为0

public Hits search(String queryString) {
Hits hits = null;

try {

File file = new File(indexPath);

Directory directory = FSDirectory.getDirectory(file);

IndexSearcher searcher = new IndexSearcher(directory);

String[] fields = { "CUSTOMERID", "SHIPNAME", "SHIPCITY",
"SHIPCOUNTRY" };
MultiFieldQueryParser mQueryPaser = new MultiFieldQueryParser(
fields, getAnalyzer());

Query query = mQueryPaser.parse(queryString);

hits = searcher.search(query);

} catch (Exception e) {
//do something here
}

return hits;
}

public void doIndex(String sql) {

try {

IndexWriter writer = new IndexWriter(indexPath, getAnalyzer(), true);

ResultSet rs = luceneDB.getResult(sql);

while (rs.next()) {
Document doc = new Document();
doc.add(new Field("CUSTOMERID", rs.getString("CUSTOMERID"),
Field.Store.YES, Field.Index.TOKENIZED));
doc.add(new Field("SHIPNAME", rs.getString("SHIPNAME"),
Field.Store.YES, Field.Index.TOKENIZED));
doc.add(new Field("SHIPCITY", rs.getString("SHIPCITY"),
Field.Store.YES, Field.Index.TOKENIZED));
doc.add(new Field("SHIPCOUNTRY", rs.getString("SHIPCOUNTRY"),
Field.Store.YES, Field.Index.TOKENIZED));

writer.addDocument(doc);
}
writer.optimize();
writer.close();

} catch (CorruptIndexException ce) {
System.out.println(ce.getMessage());
} catch (IOException ie) {
System.out.println(ie.getMessage());
} catch (SQLException se) {
System.out.println(se.getMessage());
}
}


public Analyzer getAnalyzer() {
return new StandardAnalyzer();
}
分享到:
评论
4 楼 licco1 2007-08-31  
我认为这里应该不是分析器Analyzer的缘故,因为indexWriter与IndexSearcher用的是同一种Analyzer,怀疑还是你的queryString的问题,你可以试试
public static Query parse(String[] queries, String[] fields,Analyzer analyzer) throws ParseException
3 楼 licco1 2007-08-31  
介绍你个老外弄的Luke,可以查看你索引文件里的内容。另外你的 MultiFieldQueryParser mQueryPaser = new MultiFieldQueryParser(
fields, getAnalyzer());

Query query = mQueryPaser.parse(queryString);//这个parse是继承QueryParser的吧,你的queryString是怎么传的呢(是不是field:value)?有可能是这里的问题。
2 楼 zoven 2007-08-30  
field都改成小写也还是不行,我用的是lucene2.2的,很郁闷
1 楼 javaeyes 2007-08-28  
哈哈,估计你的索引字段名都是大写的,但是查询的时候用查询词是要进过StandardAnalyzer的,这样QueryPaser出来的Query字段全都成了小写的,当然什么都查不出来。你可以在
Query query = mQueryPaser.parse(queryString);
后面把query打印出来看看

相关推荐

    lucene实现过程中存在的问题

    ### Lucene实现过程中存在的问题及解决方式 #### 一、Lucene简介与应用场景 Lucene是一款高性能、全功能的文本搜索引擎库,它被广泛应用于各种需要进行高效全文检索的应用场景中,例如网站搜索、文档管理等。由于...

    lucene,lucene教程,lucene讲解

    lucene,lucene教程,lucene讲解。 为了对文档进行索引,Lucene 提供了五个基础的类 public class IndexWriter org.apache.lucene.index.IndexWriter public abstract class Directory org.apache.lucene.store....

    Lucene 字符编码问题

    在使用Lucene时,可能会遇到字符编码问题,这通常是由于不同系统或程序之间处理字符集的方式不一致导致的。下面将详细探讨Lucene中的字符编码问题及其解决方案。 首先,我们要理解什么是字符编码。字符编码是将字符...

    lucene3.0 lucene3.0

    lucene3.0 lucene3.0 lucene3.0 lucene3.0 lucene3.0

    lucene-4.7.0全套jar包

    使用这些JAR包时,开发者需要根据具体需求选择合适的模块,并确保它们的版本一致,以避免潜在的兼容性问题。同时,还需要正确配置分词器,以适应所处理的文本内容。此外,对于大型应用,可能还需要结合Solr或Elastic...

    Lucene简介.介绍

    这通常涉及使用词库和自动切分词算法来处理中文的分词问题。 **应用场景** 许多知名的 Java 项目都采用了 Lucene 作为其全文检索引擎,例如 Jive(Web 论坛系统)、Eyebrows(邮件列表归档系统)、Cocoon(基于 ...

    Lucene3.5源码jar包

    本压缩包包含的是Lucene 3.5.0版本的全部源码,对于想要深入理解Lucene工作原理、进行二次开发或者进行搜索引擎相关研究的开发者来说,是一份非常宝贵的学习资源。 Lucene 3.5.0是Lucene的一个重要版本,它在3.x...

    lucene in action英文版 lucene 3.30包

    《Lucene in Action》是关于Apache Lucene的权威指南,这本书深入浅出地介绍了全文搜索引擎的构建和优化。Lucene是一个高性能、全文本搜索库,它允许开发人员在应用程序中轻松实现复杂的搜索功能。这本书主要面向...

    Lucene时间区间搜索

    Lucene是一款强大的全文搜索引擎库,广泛应用于各种数据检索场景。在C#环境下,利用Lucene进行时间区间搜索是提高数据检索效率和精确度的重要手段。本篇将深入探讨如何在C#中实现Lucene的时间区间查询匹配,以及涉及...

    Annotated Lucene 中文版 Lucene源码剖析

    《Annotated Lucene 中文版 Lucene源码剖析》是一本深入探讨Apache Lucene的书籍,专注于源码解析,帮助读者理解这个强大的全文搜索引擎库的工作原理。Lucene是一款开源的Java库,它提供了高效的文本搜索功能,被...

    lucene所有的jar包

    `ik-analyzer-4.9.0.jar`是Ik分词器的对应版本,它包含了一系列的分词规则和优化策略,可以很好地处理中文的停用词、词语歧义等问题。 五、使用与配置 在实际项目中,开发者需要根据具体需求选择和配置合适的...

    Lucene示例 BM25相似度计算

    在IT领域,搜索引擎技术是至关重要的,而Lucene作为一个开源全文搜索引擎库,广泛应用于各种文本检索系统中。本文将深入探讨Lucene示例中的BM25相似度计算,旨在帮助初学者理解如何利用Lucene 4.7.1版本构建索引、...

    lucene 2.0 api以及lucene 3.0 api

    **Lucene 2.0 API 和 Lucene 3.0 API 深度解析** Lucene 是一个由 Apache 软件基金会开发的全文搜索引擎库,它为开发者提供了在 Java 应用程序中实现高性能、可扩展的全文搜索功能的能力。Lucene 的 API 设计得相当...

    Lucene 5 主要jar包

    因此,在构建项目时,需要确保所有依赖项都已正确解决,避免版本冲突问题。此外,对于特定的语言处理或特殊需求,可能还需要额外下载和引入其他分析器或其他特定功能的jar包。 总的来说,Lucene 5.0.0的这些jar文件...

    计算机专业外文翻译(lucene相关)

    "计算机专业外文翻译(lucene相关)" 本文翻译了论文"Scale-up x Scale-out: A Case Study using Nutch/Lucene",介绍了计算机专业领域中关于Lucene相关的知识点。 Scale-up vs Scale-out 论文中讨论了两个相对...

    lucene in action源码

    通过深入研究《Lucene in Action》的源码,开发者不仅可以理解Lucene的基本工作原理,还能学习如何实际应用这些知识,解决具体的搜索问题。对于初学者而言,这是一个很好的起点,可以帮助他们快速上手并逐步掌握全文...

    Lucene的原理完整版pdf

    **Lucene原理详解** Lucene是一个高性能、全文检索库,由Apache软件基金会开发并维护,是Java编程语言中广泛使用的搜索引擎库。它提供了一个简单但功能强大的API,用于索引和搜索文本数据,使得开发者可以轻松地在...

    lucene5.X与lucene3.60的版本差异

    Lucene 5.x版本相对于3.6.0有显著的改进,不仅优化了API设计,提高了性能,还修复了许多已知问题。开发者在升级到新版本时,需要注意API的变更,以避免兼容性问题,并充分利用新版本带来的优势。通过理解这些变化,...

    Lucene全文检索引擎

    使用Lucene时,你可能需要考虑如何处理中文分词、如何优化搜索性能、如何实现多语言支持等问题。此外,对于大型数据集,可能需要了解如何分布式部署和管理索引。 总结来说,Lucene是一个强大的全文检索引擎,通过...

    Lucene资料大全(包括Lucene_in_Action书等)

    标题"Lucene资料大全(包括Lucene_in_Action书等)"表明这是一个包含全面Lucene学习资源的集合,其中最显著的是《Lucene_in_Action》这本书。这是一本广泛认可的关于Apache Lucene的权威指南,通常被简称为LIA,它深入...

Global site tag (gtag.js) - Google Analytics