`
hank
  • 浏览: 29125 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

lucene in action笔记之二搜索基础

    博客分类:
  • java
阅读更多

一、简单的搜索程序

  1. 主要搜索的类:1) IndexSearcher     搜索操作入口,所有的搜索操作都是通过IndexSearcher实例使用一个重载的search方法来实现。        2)Query及其子类   具体的Query子类为每一种特定类型的查询进行了逻辑上的封装。Query实例被传递到IndexSearchsearch方法中               3) QueryParser    将用户输入的(并且可读的)查询表达式处理为一个具体的Query对象             4) Hits    提供对搜索结果的访问。Hits对象由search方法返回
  2. 使用QueryParser解析查询表达式: 1)QueryParser是程序的搜索部分中唯一需要使用分析器的类。 2)如果解析不成功会抛出ParseException,程序应该能有效处理。  
  3. 使用IndexSearcher    1)推荐通过Directory对象构造IndexSearcher实例     2)FsDirectory.getDirectory(indexDir,  false) 的最后一个参数false表示我们希望打开的是一个已经存在的索引而非构造一个新的索引。    3)注意:IndexSearcher实例只搜索在他被实例化时已存在的索引。如果制作索引和搜索并发进行,那么最新你索引的文档对搜索来说是不可见的。
  4. 建议不要调用Hits类的doc(n)、id(n)和score(n)方法。因为这些方法需要在文档还没有被放入缓存之前就将器从索引中读取出来。

二、Lucene评分机制

  1. Explanation对象的内部包含了所有关于评分计算中各个因子的细节信息。

三、Query对象

  1. QueryParser类中的静态方法parse(String query, String field, Analyzer analyzer)内部运作:该静态方法在函数内部传建了一个QueryParser实例,并调用了该实例的parse(String query)方法。
  2. TempQuery 
    public void testTerm() throws Exception {
        IndexSearcher searcher = new IndexSearcher(directory);
        Term t = new Term("subject", "ant");
        //"subject"是域名,"ant"是查询项的值
       Query query = new TermQuery(t);
        Hits hits = searcher.search(query);
        assertEquals("JDwA", 1, hits.length());
    
        t = new Term("subject", "junit");
        hits = searcher.search(new TermQuery(t));
        assertEquals(2, hits.length());
    
        searcher.close();
      }
             1)注意:查询项的值是区分大小写的。此外,由于不同的分词器的索引方式都不同,所以对原文的搜索可能还有其它问题。   2)TempQuery类在根据关键字(即通过Field.Keyword()索引过的关键字)查询文档时显得特别有用。    3)如果单个单词作为查询表达式,QueryParse的parse()函数将返回一个TermQuery对象。这个单词就相当于一个单独的项。
  3. RangeQuery
     RangeQuery query = new RangeQuery(begin, end, true);
    //begin、end均为项Term
    //true 指明搜索边界包含在搜索范围之内,反之为false
     IndexSearcher searcher = new IndexSearcher(directory);
     QueryParser可用[起始 To 终止]或{起始 To 终止}表达式来构造。前者边界包含在搜索范围,后者反之。
  4. PrefixQuery
  5. BooleanQuery
  6. PhraseQuery
  7. WildcardQuery
  8. FuzzyQuery

四、解析查询表达式 QueryParser

    分享到:
    评论
    1 楼 laitaogood 2008-03-13  
    支持楼主,以后多出点这样的教程啊,小弟正在学习中呢~~~~

相关推荐

    lucene in action 2nd edition, lucene in action 第二版 PDF

    《Lucene in Action 第二版》是一本深入探讨Apache Lucene全文检索库的专业书籍,它在Java开发领域具有很高的权威性。这本书详细介绍了如何利用Lucene进行高效的文本搜索和索引构建,是Java开发者和信息检索爱好者的...

    lucene in action 第二版

    通过以上内容,可以看出《Lucene in Action 第二版》是一本涵盖Lucene搜索引擎框架全面知识的专业书籍,特别适合想要在Java应用程序中加入搜索功能的开发者。通过阅读这本书,读者可以获得丰富的理论知识和实践指导...

    Lucene In Action 第二版 高清中文版+附书源代码

    《Lucene In Action 第二版》是一本深入探讨Apache Lucene全文搜索引擎库的专业书籍,高清中文版的提供为中文读者提供了便利。这本书由Michael McCandless等作者编写,旨在帮助开发者充分利用Lucene的强大功能,构建...

    lucene in action 电子版

    ### Lucene in Action 电子版知识点总结 ...综上所述,“Lucene in Action”不仅是一本理论性强的技术书籍,更是实践指导手册,涵盖了从基础知识到高级技术的所有方面,适合所有希望深入了解并运用Lucene的读者阅读。

    lucene in action

    lucene in action lucene in action lucene in action lucene in action lucene in action lucene in action lucene in action lucene in action

    Lucene in action 2nd edition

    《Lucene in Action》第二版是一本全面介绍Apache Lucene 3.0的书籍,它被誉为是美国大学搜索引擎课程的标准教材之一。本书由Michael McCandless、Erik Hatcher和Otis Gospodnetic三位作者共同编写,并得到了Apache ...

    Lucene in action 中文版

    《Lucene in Action》中文版是一本深入探讨Apache Lucene搜索引擎库的专业书籍。这本书由Michael McCandless和Erik Hatcher撰写,旨在帮助开发者理解和掌握如何利用Lucene进行全文检索和索引。中文版的发布使得更多...

    Lucene in Action 2nd

    ### Lucene in Action 第二版 – Apache Lucene 3.0 深度解析 #### 知识点一:Lucene 简介与应用场景 Lucene 是一个高性能、全功能的文本搜索库,它为开发者提供了构建强大搜索应用的能力。本书《Lucene in Action...

    lucene in action源码2

    《Lucene in Action》是关于Apache Lucene搜索引擎库的一本经典著作,这本书深入浅出地讲解了Lucene的原理和应用。源代码是学习技术书籍的精髓所在,它能让我们直观地理解书中理论的实现过程。现在我们拥有《Lucene ...

    Lucene in Action 2nd Edition

    《Lucene in Action 2nd Edition》是关于Apache Lucene搜索引擎库的一本权威指南,由Manning出版社出版,于2010年6月推出了MEAP(Manning Early Access Program)新版。这本书深入浅出地介绍了如何利用Lucene进行...

    Lucene in Action第二版(中文和英文)

    《Lucene in Action》第二版是一本专注于开源全文搜索引擎库Lucene的专业著作,由美国的Otis Gospodnetic和Erik Hatcher共同撰写。这本书深入浅出地讲解了如何利用Lucene进行高效的文本搜索和索引构建,是Java开发者...

    lucene in action 第二版中文版

    lucene in action 第二版中文版,

    lucene in action 2ed Edition

    《Lucene in Action 2nd Edition》是一本深入探讨Apache Lucene搜索引擎库的权威书籍,由Manning出版社在2010年发行。这本书详细介绍了如何利用Java编程语言来构建高性能、可扩展的全文检索应用。Lucene是Apache软件...

    Lucene in Action英文版

    ### Lucene in Action 英文版 #### 一、理解Lucene - **定义与功能**:Lucene是一款强大的Java搜索库,它允许开发者轻松地为任何应用添加搜索功能。近年来,Lucene变得异常流行,并成为了最广泛使用的文档检索库之...

    Lucene In Action

    《Lucene In Action》是关于Apache Lucene的权威指南,这本书深入浅出地介绍了这个强大的全文搜索引擎库。Lucene是一个开源的Java库,它提供了文本分析、索引和搜索功能,广泛应用于各种需要高效全文检索的场景。这...

    Lucene实战源码(Lucene in Action Source Code)part1

    《Lucene实战源码(Lucene in Action Source Code)part1》是针对知名图书《Lucene in Action》的源代码,这部分主要涵盖了Lucene搜索引擎库的基础应用和核心概念。Lucene是一个高性能、全文本搜索库,它允许开发者...

    Lucene in Action 配套源码

    《Lucene in Action》是一本深受开发者欢迎的书籍,它深入浅出地介绍了Apache Lucene这个全文搜索引擎库的使用和实现原理。这本书的配套源码提供了丰富的实例,帮助读者更好地理解Lucene的工作机制,同时也为实际...

Global site tag (gtag.js) - Google Analytics