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

【Lucene】lucene的评分机制

 
阅读更多

 

测试环境里查询条件1065800714,为什么ScoreDoc.score小于1呢?这个值是怎么算出来的?

输入1065800714*,ScoreDoc.score变成了1

注:在生产环境里大于1而在测试环境里却小于1,生产和测试环境唯一区别是测试环境数据量很小。

ScoreDoc.score——The score of this document for the query.

 

判断文档之间的关系(即文档相关性)

注:查询语句也可以看成是文档,即查询语句与匹配结果文档之间的关系

 

要判断文档之间的关系,首先得找出哪些词(Term)对文档之间的关系最重要,然后判断这些词之间的关系

从而得到文档相关性。

 

step 1.计算词(Term)的权重(Term Weight)

一个词在某文档中的重要性(即权重)越大,则在计算文档之间相关性中作用更大,影响权重主要有两个要素:

a.  Term Frequency(tf):此term在此document里出现的次数。出现次数越多,tf越大,说明该词越重要。

 

b. Document Frequency(df):多少document包含该term。数目越少,df越小(idf越大),说明该词越重要。

 

step 2.向量空间模型算法(Vector Space Model)计算文档之间的相关性。

 

 

fieldWeight是什么?

 

 

IndexSearcher中与打分有关的方法

 

 

我的需求:只关心查询的term是否存在,对于hit result的score,term的文档频率(df)不影响score。

即计算一个term的权重,根据该term占一个document的tf来计算,忽略上面step 1的b因素。

 

参考:

http://lucene.apache.org/core/old_versioned_docs/versions/3_4_0/scoring.html

http://lucene.apache.org/core/old_versioned_docs/versions/3_4_0/api/core/org/apache/lucene/search/package-summary.html#changingSimilarity

http://www.gossamer-threads.com/lists/lucene/java-user/39125#39125

http://www.gossamer-threads.com/lists/lucene/java-user/38967#38967

分享到:
评论

相关推荐

    lucene 自定义评分

    然而,Lucene 的默认评分机制可能无法满足所有场景下的需求,这就需要我们对其进行自定义评分来实现特定的权重分配。本文将深入探讨如何在 Lucene 中实现自定义评分,以及它对提高搜索质量的重要性。 在 Lucene 中...

    Lucene 评分机制

    在深入探讨Lucene的评分机制之前,我们首先要理解搜索引擎的基本工作流程,这通常包括索引构建、查询解析和结果排序三个阶段。在Lucene中,评分机制(Scoring Mechanism)就是用于决定文档与查询匹配程度的关键部分...

    深入 Lucene 索引机制

    《深入 Lucene 索引机制》这篇博文主要探讨了Lucene这个全文搜索引擎的核心索引原理,它在信息检索领域有着广泛的应用。Lucene是一个开源的Java库,它提供了高效、可扩展的文本搜索功能。以下是对Lucene索引机制的...

    Lucene5学习之评分Scoring

    在Lucene 5版本中,对于搜索结果的排序和评分机制进行了优化,使得搜索体验更加精准。本文将深入探讨Lucene5中的评分(Scoring)机制,帮助读者理解如何通过源码分析和工具使用来提升搜索质量。 首先,我们需要了解...

    lucene in action英文版 lucene 3.30包

    同时,它还提供了评分机制,用于衡量查询结果的相关性。 4. **更新与删除** Lucene允许动态更新和删除文档,这在实时搜索场景中非常重要。更新文档时,Lucene会处理旧索引和新索引的合并;删除文档时,它会在索引...

    lucene整理文档,lucene详细描述,安装使用过程。

    Lucene 提供了索引和搜索文本的基本工具,包括分词、建立倒排索引、查询解析和评分机制等。 **安装与配置** 安装 Lucene 非常简单,只需要将对应的 JAR 包添加到项目依赖中。在 Maven 项目中,可以在 pom.xml 文件...

    Lucene3.5源码jar包

    7. **近实时搜索(NRT)**:从3.0版本开始,Lucene引入了NRT机制,允许在不完全刷新索引的情况下返回最新结果。`IndexWriter.addDocument()`和`IndexWriter.commit()`等方法体现了这一特性。 8. **多字段搜索**:...

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

    4. **结果排序**:Lucene通过评分机制(如TF-IDF)对搜索结果进行排序,得分最高的结果优先展示。 5. **过滤与聚合**:Filter和Collector组件可以用于进一步筛选结果,或者进行分组、统计等聚合操作。 6. **更新与...

    lucene可视化工具 Luck-6.5.0

    4. **文档评分**:Luck 显示每个匹配文档的评分,这是 Lucene 排序算法的结果,展示了文档与查询的相关性。 5. **元数据查看**:用户可以查看索引的元数据,如文档总数、字段列表、分段信息等,这些信息对于分析...

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

    4. **查询处理**:讲解了如何构建各种查询表达式,如布尔查询、短语查询、范围查询等,并且讨论了评分机制和查询优化技巧。 5. **高级主题**:书中涵盖了高级话题,如近实时搜索、分布式搜索(通过Solr实现)、复杂...

    lucene3源码分析

    在理解Lucene的工作机制之前,我们需要了解全文检索的基本原理。 - **索引构建**:这是全文检索的第一步,涉及到将文档内容转换为可被快速搜索的形式。 - **查询处理**:当用户提交查询时,系统会根据已建立的索引...

    Lucene4 全文检索

    - **结果排序**: Lucene 支持多种评分机制,如 TF-IDF,用于确定文档的相关性,从而对搜索结果进行排序。 - **结果返回**: 最后,返回给用户最相关的搜索结果。 ### 3. 文件和数据库支持 Lucene4 不仅能处理文本...

    Lucene3.3.0学习Demo

    **Lucene 3.3.0 学习Demo** ...总之,"Lucene3.3.0学习Demo"是一个宝贵的资源,对于想要掌握全文搜索技术的开发者来说,它提供了丰富的实践案例和学习材料,可以帮助你快速上手并深入理解Lucene的核心机制。

    lucene学习pdf2

    4. **评分机制**:基于TF-IDF、BM25等算法,Lucene可以对匹配的文档进行评分,用于决定搜索结果的排序。 5. **过滤器(Filter)和截断器(Analyzer)**:用于进一步处理词元,如删除停用词、词干提取、大小写转换等...

    lucene-core-2.9.4,lucene-core-3.0.2,lucene-core-3.0.3,lucene-core-3.4.0

    - **内存索引**:2.9.4引入了更高效的内存索引构建机制,对于快速原型开发和测试场景非常有用。 2. **Lucene 3.0.2和3.0.3** - **段合并优化**:这两个版本主要关注于索引段的合并策略,旨在减少磁盘I/O,提高...

    Lucene实战(中文版第二版)对应Lucene版本

    通过《Lucene实战(中文版第二版)》结合Lucene 3.0.3源代码,读者不仅可以掌握Lucene的基本用法,还能深入理解其内部机制,为开发高效、定制化的全文搜索引擎奠定基础。同时,由于Lucene各版本间的差异,学习历史...

    lucene jar包

    2. **索引构建**:Lucene的索引机制是基于倒排索引的,这种索引方式允许快速查找包含特定词的文档。在构建索引时,开发者可以自定义字段,决定哪些内容需要被索引,哪些内容仅用于存储不参与搜索。 3. **查询解析**...

    lucene包,lucene实现核心代码

    - Lucene的核心机制是倒排索引,它将每个词项映射到包含该词项的文档列表,极大地提高了搜索效率。 5. **优化与更新**: - `Optimize()`方法用于合并索引段,减少索引文件的数量,提高搜索性能。 - `Commit()`和...

    lucene源码和程序

    Lucene是Apache软件基金会下的一个项目,它是一个高性能、全文本搜索库,完全用Java编写。作为一款开源的全文检索工具包,...通过学习和使用Lucene源码,你可以更深入地理解全文检索的工作机制,提升自己的开发技能。

    lucene3 例子

    5. **搜索执行**:如何使用IndexSearcher进行搜索,包括评分机制、TopDocs和ScoreDoc的使用,以及如何排序结果。 6. **优化与性能**:可能涉及到索引的优化策略,如合并小段,以及如何调整缓存大小、使用多线程等...

Global site tag (gtag.js) - Google Analytics