lucene为每个与Query匹配的文档都赋予了一个分数,用这个分数来表示文档与Query的相似度。lucene采用的公式和老师所说的最常用公式有点相似:
Σt in q (t f (t in d ) *idf (t)* boost(t.field in d )* lengthNorm(t.field in d )) *coord(q,d )* queryNorm(q)
其中,t表示term、d表示document、q表示query。这个公式的一些含义如下:
1. tf(t in d):表示t的词频,即特征词t在文档d中出现的次数
2. idf(t): 反文献频率,这个应该大家都比较熟了。
3. boost(t.field in d):这个在建立lucene索引的时候说过。对某个field的赋予的权重。
4. lengthNorm(t.field in d):表示关键词t在文档d中所占的比重。在这里d中的关键词越少,代表t越重要。
5. coord(q,d): 代表q中有多少个特征词在文档d中出现
6. queryNorm(q): 代表q中每个特征词权值之和。
有些时候理解这些参数,以及为什么lucene要设置这样的评分机制,会有点困难,lucene比较人性化,提供了explain()方法使得用户可以更好的理解评分机制。
附件为explain()的使用方法。
分享到:
相关推荐
《深入 Lucene 索引机制》这篇博文主要探讨了Lucene这个全文搜索引擎的核心索引原理,它在信息检索领域有着广泛的应用。Lucene是一个开源的Java库,它提供了高效、可扩展的文本搜索功能。以下是对Lucene索引机制的...
然而,Lucene 的默认评分机制可能无法满足所有场景下的需求,这就需要我们对其进行自定义评分来实现特定的权重分配。本文将深入探讨如何在 Lucene 中实现自定义评分,以及它对提高搜索质量的重要性。 在 Lucene 中...
该模型通过对Lucene评分机制的改进,建立了一个新的文档有效性二次判别模型,通过一个多维非线性计算函数来评估搜索结果的相似度,并据此对搜索结果进行排序。 #### 三、系统特点 - **自然语言输入**:用户可以...
在Lucene 5版本中,对于搜索结果的排序和评分机制进行了优化,使得搜索体验更加精准。本文将深入探讨Lucene5中的评分(Scoring)机制,帮助读者理解如何通过源码分析和工具使用来提升搜索质量。 首先,我们需要了解...
同时,它还提供了评分机制,用于衡量查询结果的相关性。 4. **更新与删除** Lucene允许动态更新和删除文档,这在实时搜索场景中非常重要。更新文档时,Lucene会处理旧索引和新索引的合并;删除文档时,它会在索引...
Lucene 提供了索引和搜索文本的基本工具,包括分词、建立倒排索引、查询解析和评分机制等。 **安装与配置** 安装 Lucene 非常简单,只需要将对应的 JAR 包添加到项目依赖中。在 Maven 项目中,可以在 pom.xml 文件...
4. **结果排序**:Lucene通过评分机制(如TF-IDF)对搜索结果进行排序,得分最高的结果优先展示。 5. **过滤与聚合**:Filter和Collector组件可以用于进一步筛选结果,或者进行分组、统计等聚合操作。 6. **更新与...
4. **评分机制**:基于TF-IDF、BM25等算法,Lucene可以对匹配的文档进行评分,用于决定搜索结果的排序。 5. **过滤器(Filter)和截断器(Analyzer)**:用于进一步处理词元,如删除停用词、词干提取、大小写转换等...
**Lucene 3.3.0 学习Demo** ...总之,"Lucene3.3.0学习Demo"是一个宝贵的资源,对于想要掌握全文搜索技术的开发者来说,它提供了丰富的实践案例和学习材料,可以帮助你快速上手并深入理解Lucene的核心机制。
7. **近实时搜索(NRT)**:从3.0版本开始,Lucene引入了NRT机制,允许在不完全刷新索引的情况下返回最新结果。`IndexWriter.addDocument()`和`IndexWriter.commit()`等方法体现了这一特性。 8. **多字段搜索**:...
4. **文档评分**:Luck 显示每个匹配文档的评分,这是 Lucene 排序算法的结果,展示了文档与查询的相关性。 5. **元数据查看**:用户可以查看索引的元数据,如文档总数、字段列表、分段信息等,这些信息对于分析...
用户可以输入查询语句,工具会显示匹配的文档及其得分,这有助于理解查询评分机制。同时,通过查看查询的执行过程,开发者可以优化查询语句,提高搜索效率。 进一步,该工具可能还包括了对FieldCache、TermVector和...
4. **查询处理**:讲解了如何构建各种查询表达式,如布尔查询、短语查询、范围查询等,并且讨论了评分机制和查询优化技巧。 5. **高级主题**:书中涵盖了高级话题,如近实时搜索、分布式搜索(通过Solr实现)、复杂...
在理解Lucene的工作机制之前,我们需要了解全文检索的基本原理。 - **索引构建**:这是全文检索的第一步,涉及到将文档内容转换为可被快速搜索的形式。 - **查询处理**:当用户提交查询时,系统会根据已建立的索引...
- **结果排序**: Lucene 支持多种评分机制,如 TF-IDF,用于确定文档的相关性,从而对搜索结果进行排序。 - **结果返回**: 最后,返回给用户最相关的搜索结果。 ### 3. 文件和数据库支持 Lucene4 不仅能处理文本...
6. **搜索执行**:通过Searcher对象执行查询,获取TopDocs,了解ScoreDoc和Explanation的概念,理解评分机制。 7. **高亮显示**:如何使用Highlighter对搜索结果进行高亮,提高用户体验。 8. **更新与删除**:学习...
- Lucene的核心机制是倒排索引,它将每个词项映射到包含该词项的文档列表,极大地提高了搜索效率。 5. **优化与更新**: - `Optimize()`方法用于合并索引段,减少索引文件的数量,提高搜索性能。 - `Commit()`和...
2. **索引构建**:Lucene的索引机制是基于倒排索引的,这种索引方式允许快速查找包含特定词的文档。在构建索引时,开发者可以自定义字段,决定哪些内容需要被索引,哪些内容仅用于存储不参与搜索。 3. **查询解析**...
Lucene是Apache软件基金会下的一个项目,它是一个高性能、全文本搜索库,完全用Java编写。作为一款开源的全文检索工具包,...通过学习和使用Lucene源码,你可以更深入地理解全文检索的工作机制,提升自己的开发技能。