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

lucene的又一问题

 
阅读更多
    这段时间在项目中又发现lucene的一个问题,例如搜索某一个关键词"愤怒的小鸟太空版",在屏蔽lengNorm全命中的情况下,原则上说score值肯定会一样,但是会出现score值不一样的时候,只是之间的差值很小很小,基本上可以忽略不计,可最终也会影响排序,比如5.232345 5.2323448 之间的差值只有0.0000002。
    分析lucene源代码发现是在搜索时候idf值不一样导致了结果的不对,由于修改lucene的源代码不太现实,最后的解决办事是扩展Similarity,将idf值的小数点后4位之后的全部去掉,比如值为:5.2323448,改为5.2323扩展源码如下:
   
        public float idf(int docFreq, int numDocs) {
      float idf = (float)(Math.log(numDocs/(double)(docFreq+1)) + 1.0);
      idf=(int)(idf*10000)/10000.0000f;
      return idf;
    }      

    

    这样处理并一定是最好的解决方案,但暂时解决了项目中遇到的问题,如果要完美的解决这个问题,要么等lucene更新,要么自己修改lucene的源代码。
分享到:
评论

相关推荐

    Lucene 字符编码问题

    在IT行业中,字符编码是一个非常基础且重要的概念,特别是在处理文本数据时,如搜索引擎Lucene。Lucene是一个高性能、全文本检索库,广泛应用于各种信息检索系统。在使用Lucene时,可能会遇到字符编码问题,这通常是...

    lucene实现过程中存在的问题

    Lucene作为一款强大的搜索引擎库,在实际应用中确实会遇到一些问题,如平台异常、查询异常、显示问题以及写锁异常等。针对这些问题,我们可以通过一系列措施来进行预防和解决,如正确使用查询语法、优化显示逻辑、...

    lucene,lucene教程,lucene讲解

    Directory类代表一个Lucene索引的位置。它是一个抽象类. 其中的两个实现: 第一个是 FSDirectory,它表示一个存储在文件系统中的索引的位置。 第二个是 RAMDirectory,它表示一个存储在内存当中的索引的位置。 ...

    Lucene全文检索引擎

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

    lucene的一个实用例子

    Lucene 是一个开源全文搜索引擎库,由 Apache 软件基金会开发。它提供了一个可扩展的、高性能的搜索框架,使得开发者能够轻易地在应用中集成全文检索功能。本实例将通过一个具体的应用场景,帮助大家了解 Lucene 的...

    第一个lucene程序

    《第一个Lucene程序详解》 在信息技术领域,搜索引擎的实现是一项关键的技术,而Apache Lucene作为一款开源全文检索库,为开发者提供了强大的文本搜索功能。本文将深入探讨如何编写你的“第一个Lucene程序”,帮助...

    Lucene初探,一个初级的LuceneDemo

    **Lucene初探:一个初级的LuceneDemo** 在IT领域,搜索引擎技术是不可或缺的一部分,尤其是在大数据时代,高效的信息检索显得尤为重要。Apache Lucene就是这样一款强大的开源全文搜索引擎库,它为开发者提供了构建...

    Lucene的一个毕业设计

    Lucene 是一个高性能、全文本搜索库,由 Apache 软件基金会开发。它提供了一个可扩展的、高度优化的框架,用于在各种数据源中进行索引和搜索文本信息。Lucene 具有强大的文本分析能力,可以处理多种语言,并且支持...

    Lucene简介.介绍

    Lucene 是一个强大的开源全文搜索库,由 Java 编写,主要用于为应用程序添加全文检索功能。它不是一个完整的全文搜索引擎应用,而是一个工具包,允许开发者将其集成到自己的软件中,以实现高效、灵活的文本搜索功能...

    基于Lucene的Lucene

    Lucene是一款开源的全文搜索引擎库,由Apache软件基金会维护,被广泛应用于各种搜索引擎的开发。它提供了一个高效、可扩展的框架,用于索引和搜索大量文本数据。本篇文章将深入探讨如何基于Lucene开发一个文件检索...

    Java搜索引擎 Lucene(一)

    Java搜索引擎 Lucene,是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和...Lucene提供了一个简单确强大的应用程式接口,能够做全文索引和搜寻,在Java开发环境里Lucene是一个成熟工具;就其本身而论。

    深入了解Lucene之一 系统结构分析.pptx

    Lucene是一款开源的全文搜索引擎库,广泛应用于各种信息检索系统中。本文将从系统结构、源码组织、数据流及其相互关系等多个角度,帮助读者深入理解Lucene的核心机制。 ### **1. 全文检索系统结构** 一个完整的...

    Lucene的原理完整版pdf

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

    lucene讲义 叫你用lucene算法

    Lucene是一款强大的全文搜索引擎库,它提供了丰富的信息检索功能,包括文本分析、索引构建、搜索以及结果排名等。在深入理解Lucene的工作原理时,我们首先要关注的是其核心算法。 一、单个索引的构建 在Lucene中,...

    lucene in action英文版 lucene 3.30包

    Lucene是一个高性能、全文本搜索库,它允许开发人员在应用程序中轻松实现复杂的搜索功能。这本书主要面向Java开发者,通过阅读,读者可以理解Lucene的核心概念,学习如何使用它来构建自己的搜索引擎。 1. **Lucene...

    lucene

    Lucene是一个全文搜索引擎库,由Apache软件基金会开发并维护,它提供了高效的文本检索、分析和存储功能。在Java编程语言中,Lucene被广泛应用于各种需要全文搜索功能的系统,如网站、文档管理、知识库等。其强大的...

    Annotated Lucene 中文版 Lucene源码剖析

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

    Lucene3.5源码jar包

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

    lucene-4.7.0全套jar包

    Lucene是一个开源全文搜索引擎库,由Apache软件基金会开发并维护。它提供了一个高级、灵活的文本搜索API,允许开发者轻松地在应用程序中实现复杂的搜索功能。这次提供的“lucene-4.7.0”压缩包包含了Lucene 4.7.0...

Global site tag (gtag.js) - Google Analytics