`
zxh116116
  • 浏览: 11360 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

lucene3.4文档得分

 
阅读更多
public static void main(String[] args) throws Exception { 
    Directory dir =new RAMDirectory();
   
    IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_34, new StandardAnalyzer(Version.LUCENE_34));
    IndexWriter writer = new IndexWriter(dir,conf); 

         
        Document doc1 = new Document(); 
        Document doc2 = new Document(); 
        Document doc3 = new Document();
        Document doc4 = new Document(); 
        Document doc5 = new Document(); 
         
        Field f1 = new Field("sex","1", Field.Store.YES, Field.Index.ANALYZED); 
        Field f2 = new Field("sex","0", Field.Store.YES, Field.Index.ANALYZED); 
        Field f3 = new Field("sex","1", Field.Store.YES, Field.Index.ANALYZED);
        Field f4 = new Field("sex","1", Field.Store.YES, Field.Index.ANALYZED);
        Field f5 = new Field("sex","1", Field.Store.YES, Field.Index.ANALYZED);
       
        Field f11 = new Field("income","10", Field.Store.YES, Field.Index.ANALYZED); 
        Field f22 = new Field("income","10", Field.Store.YES, Field.Index.ANALYZED); 
        Field f33 = new Field("income","11", Field.Store.YES, Field.Index.ANALYZED);
        Field f44 = new Field("income","10", Field.Store.YES, Field.Index.ANALYZED);
        Field f55 = new Field("income","10", Field.Store.YES, Field.Index.ANALYZED);
         
        doc1.add(f1); 
        doc2.add(f2); 
        doc3.add(f3);
        doc4.add(f4);
        doc5.add(f5);
       
        doc1.add(f11); 
        doc2.add(f22); 
        doc3.add(f33);
        doc4.add(f44);
        doc5.add(f55);
        doc5.setBoost(2f);
         
        writer.addDocument(doc1); 
        writer.addDocument(doc2); 
        writer.addDocument(doc3);
        writer.addDocument(doc4); 
        writer.addDocument(doc5);
         
        writer.close(); 
         
        IndexSearcher searcher = new IndexSearcher(dir); 
        //TermQuery q = new TermQuery(new Term("sex", "1")); 
        //q.setBoost(2f);
        QueryParser qp=new QueryParser(Version.LUCENE_34, "nickname",new StandardAnalyzer(Version.LUCENE_34));
        Query q=qp.parse("sex:1 AND income:10");
        TopDocs hits = searcher.search(q,100);

       
        for(int i=0;i<hits.scoreDocs.length;i++){
ScoreDoc sdoc = hits.scoreDocs[i]; 
Document doc = searcher.doc(sdoc.doc);
System.out.print(doc.get("sex") + "\t\t"); 
         System.out.println(sdoc.score); 
         System.out.println(searcher.explain(q, sdoc.doc));//
}
       
        /*for(int docID=0; docID<hits.length;docID++){ 
            Document doc = searcher.doc(hits[docID].doc); 
            System.out.print(doc.get("sex") + "\t\t"); 
            System.out.println(hits[docID].score); 
            System.out.println(searcher.explain(q, docID));// 
        }  */
    } 

输出结果
1 2.828427
2.828427 = (MATCH) sum of:
  1.4142135 = (MATCH) weight(sex:1 in 4), product of:
    0.70710677 = queryWeight(sex:1), product of:
      1.0 = idf(docFreq=4, maxDocs=5)
      0.70710677 = queryNorm
    2.0 = (MATCH) fieldWeight(sex:1 in 4), product of:
      1.0 = tf(termFreq(sex:1)=1)
      1.0 = idf(docFreq=4, maxDocs=5)
      2.0 = fieldNorm(field=sex, doc=4)
  1.4142135 = (MATCH) weight(income:10 in 4), product of:
    0.70710677 = queryWeight(income:10), product of:
      1.0 = idf(docFreq=4, maxDocs=5)
      0.70710677 = queryNorm
    2.0 = (MATCH) fieldWeight(income:10 in 4), product of:
      1.0 = tf(termFreq(income:10)=1)
      1.0 = idf(docFreq=4, maxDocs=5)
      2.0 = fieldNorm(field=income, doc=4)

1 1.4142135
1.4142135 = (MATCH) sum of:
  0.70710677 = (MATCH) weight(sex:1 in 0), product of:
    0.70710677 = queryWeight(sex:1), product of:
      1.0 = idf(docFreq=4, maxDocs=5)
      0.70710677 = queryNorm
    1.0 = (MATCH) fieldWeight(sex:1 in 0), product of:
      1.0 = tf(termFreq(sex:1)=1)
      1.0 = idf(docFreq=4, maxDocs=5)
      1.0 = fieldNorm(field=sex, doc=0)
  0.70710677 = (MATCH) weight(income:10 in 0), product of:
    0.70710677 = queryWeight(income:10), product of:
      1.0 = idf(docFreq=4, maxDocs=5)
      0.70710677 = queryNorm
    1.0 = (MATCH) fieldWeight(income:10 in 0), product of:
      1.0 = tf(termFreq(income:10)=1)
      1.0 = idf(docFreq=4, maxDocs=5)
      1.0 = fieldNorm(field=income, doc=0)

1 1.4142135
1.4142135 = (MATCH) sum of:
  0.70710677 = (MATCH) weight(sex:1 in 3), product of:
    0.70710677 = queryWeight(sex:1), product of:
      1.0 = idf(docFreq=4, maxDocs=5)
      0.70710677 = queryNorm
    1.0 = (MATCH) fieldWeight(sex:1 in 3), product of:
      1.0 = tf(termFreq(sex:1)=1)
      1.0 = idf(docFreq=4, maxDocs=5)
      1.0 = fieldNorm(field=sex, doc=3)
  0.70710677 = (MATCH) weight(income:10 in 3), product of:
    0.70710677 = queryWeight(income:10), product of:
      1.0 = idf(docFreq=4, maxDocs=5)
      0.70710677 = queryNorm
    1.0 = (MATCH) fieldWeight(income:10 in 3), product of:
      1.0 = tf(termFreq(income:10)=1)
      1.0 = idf(docFreq=4, maxDocs=5)
      1.0 = fieldNorm(field=income, doc=3)

score简单说是由各个字段的 tf * idf * boost * lengthNorm相加计算得出的。每个字段又分为 queryWeight,fieldWeight
分享到:
评论

相关推荐

    lucene 3.4基本应用

    学习Lucene 3.4,你可以参考官方文档、在线教程和开源项目。了解其核心组件如`Analyzer`、`Document`、`Field`、`Query`、`IndexWriter`和`Searcher`的工作原理,并尝试自己实现一个简单的搜索引擎。通过不断的实践...

    支持lucene3.4的paoding

    资源为庖丁解牛分词法的最新源码以及生成的jar包,支持最新的Lucene3.4以及Lucene3.0以上版本。Jar包为本地生成

    Lucene3.4开发入门.pdf

    Lucene3.4开发入门.pdf

    lucene3.4 jar

    《深入理解Lucene 3.4:核心与扩展》 Lucene是一个开源全文搜索引擎库,由Apache软件基金会开发并维护。在3.4版本中,Lucene提供了强大的文本搜索功能,广泛应用于各种信息检索和数据挖掘项目。这个版本的JAR包包含...

    支持Lucene3.3、3.4的庖丁解牛分词法的源码和jar包

    资源为庖丁解牛分词法的最新源码以及生成的jar包,支持最新的Lucene3.4以及Lucene3.0以上版本。Jar包为本地生成,大家也可以到SVN上检出自己生成,另外庖丁解牛分词法的使用Demo我会接下来上传一份,欢迎分享。

    lucene 3.4源码包,适用于XP,WIN7系统

    《深入剖析Lucene 3.4.0源码:构建搜索技术基石》 Lucene,一个由Apache软件基金会开发的全文检索库,以其高效、灵活和开源的特点,被广泛应用于各种信息检索系统中。这里我们关注的是Lucene 3.4.0版本,一个在XP和...

    lucene-3.4.0

    在这个版本中,我们可以通过提供的jar文件、使用文档以及demo来深入了解和实践Lucene的强大功能。 首先,让我们了解一下Lucene的核心概念。Lucene的核心是索引,它将文本数据转换为高效的倒排索引结构,以便快速...

    lucene-core-7.2.1-API文档-中文版.zip

    包含翻译后的API文档:lucene-core-7.2.1-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache.lucene:lucene-core:7.2.1; 标签:apache、lucene、core、中文文档、jar包、java; 使用方法:解压翻译后的API...

    lucene-3.4.0-src.tgz

    这是 lucene-3.4.0的源码。Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和...

    Lucene技术文档doc

    **Lucene技术文档doc** **一、Lucene简介** Lucene是Apache软件基金会下的Jakarta项目组的一个核心项目,它是一款高性能、可扩展的全文检索引擎库。作为一个开源的Java库,Lucene提供了完整的搜索功能,包括索引、...

    lucene文档,lucene相关文档

    3. 相关性(Relevance):Lucene使用TF-IDF(词频-逆文档频率)算法计算文档与查询的相关性,确定搜索结果的排名。 四、扩展与优化 1. 分布式搜索(Solr):Apache Solr基于Lucene,提供分布式、集群化搜索解决...

    lukeall-3.4.0_1.jar

    lucene3.0+索引查看工具,lucene搜索引擎中索引部分的查看工具,-lucene search engine indexing part of the view tools

    lucene帮助文档.chm

    《Lucene帮助文档详解》 Lucene是一款强大的全文搜索引擎库,由Apache软件基金会开发并维护。这个名为“lucene帮助文档.chm”的压缩包文件,包含了一份详尽的Lucene使用指南,通常以CHM(Microsoft Compiled ...

    lucene-4.6.0官方文档

    《Lucene 4.6.0官方文档》是针对开源全文搜索引擎库Lucene的一个详尽参考资料,适用于版本4.6.0。Lucene是Apache软件基金会的一个项目,它提供了一个高性能、可扩展的信息检索库,广泛应用于各种搜索应用和信息管理...

    lucene-core-7.7.0-API文档-中文版.zip

    包含翻译后的API文档:lucene-core-7.7.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache.lucene:lucene-core:7.7.0; 标签:apache、lucene、core、中文文档、jar包、java; 使用方法:解压翻译后的API...

    lucene电子文档搜索

    4. **匹配(Matching)**: Lucene使用查询对象在索引中查找匹配的文档,并计算相关性得分。 5. **结果排序(Scoring)**: 匹配的文档根据相关性得分排序,返回给用户。 ### 3. Lucene.Net API关键类 - **Analyzer...

    weblucene安装文档

    在本安装文档中,我们将详细介绍如何一步步地安装并配置WebLucene,以便于你能够快速地将它集成到你的项目中。 首先,我们需要了解安装WebLucene所需的环境。WebLucene基于Java,因此确保你的系统已经安装了Java ...

    利用lucene实现文档关键字检索

    在这个使用案例中,我们将深入探讨如何利用Lucene实现对Word文档中的关键字检索并高亮显示结果。 首先,我们需要理解Lucene的基本工作原理。Lucene通过建立倒排索引(Inverted Index)来加速查询。倒排索引是一种...

    Lucene-2.0学习文档

    在Lucene中,搜索结果通常按照相关性排序,相关性由`ScoreDoc`对象表示,它包含了文档得分。`Comparator`接口可以自定义比较规则,`MyScoreDocComparator.java`就是实现了这一功能的类。用户可以根据需求调整排序...

Global site tag (gtag.js) - Google Analytics