【问题标题】:Lucene ranking - how to use new 4.0 scoring modelsLucene 排名——如何使用新的 4.0 评分模型
【发布时间】:2012-03-06 15:01:05
【问题描述】:

拼命尝试在 Lucene 中实现一个新功能,我求助于你。 基本上,在这个 JIRA 问题中,Lucene 中添加了一些额外的评分模型:https://issues.apache.org/jira/browse/LUCENE-2959

请原谅我的无知,但我真的不明白如何获得该链接中描述的 lucene 的“版本”,以便我可以将它用于我自己的需要。该链接中的作者提到他们已经实现了新的排名模型,例如 BM25,但我不知道从哪里获得源代码,也不知道如何实现或运行具有这些新功能的 Lucene。如果您有这方面的专业知识,我们将非常感谢您的帮助。

提前致谢,

尼克

【问题讨论】:

    标签: lucene


    【解决方案1】:

    正如 sdolgy 所说,你应该拉一个夜间构建:

    Lucene:http://lucene.apache.org/core/developer.html 索尔:http://wiki.apache.org/solr/NightlyBuilds

    至于如何使用这些模型,非常简单。

    在 Lucene 中,在您的 IndexSearcher 上设置相似度:

    indexSearcher.setSimilarity(new BM25Similarity());
    

    从 Solr,在 schema.xml 中设置相似度:

    <similarity class="solr.BM25SimilarityFactory"/>
    

    可以进行更高级的配置(例如设置参数、按字段配置等)。

    对于 Lucene,从包文档的概述开始: https://builds.apache.org/view/G-L/view/Lucene/job/Lucene-trunk/javadoc/core/org/apache/lucene/search/similarities/package-summary.html

    对于 Solr,请查看各个工厂的 javadocs: https://builds.apache.org/view/G-L/view/Lucene/job/Solr-trunk/javadoc/org/apache/solr/search/similarities/package-summary.html

    如果您需要更高级的 Solr 配置示例,请查看 http://svn.apache.org/repos/asf/lucene/dev/trunk/solr/core/src/test-files/solr/conf/ 中的测试

    例如,这个测试文件使用 SchemaSimilarityFactory 在不同的字段上配置不同的 DFR 模型,以便它可以轻松测试各种组合是否有效,(我建议你去配置完全不同的评分每个领域的系统,除非你知道你在做什么,这是可能的,并且有一些如何配置工厂的例子):http://svn.apache.org/repos/asf/lucene/dev/trunk/solr/core/src/test-files/solr/conf/schema-dfr.xml

    此目录中也存在对其他模型工厂的类似测试: http://svn.apache.org/repos/asf/lucene/dev/trunk/solr/core/src/test-files/solr/conf/schema-bm25.xmlhttp://svn.apache.org/repos/asf/lucene/dev/trunk/solr/core/src/test-files/solr/conf/schema-ib.xmlhttp://svn.apache.org/repos/asf/lucene/dev/trunk/solr/core/src/test-files/solr/conf/schema-lmdirichlet.xmlhttp://svn.apache.org/repos/asf/lucene/dev/trunk/solr/core/src/test-files/solr/conf/schema-lmjelinekmercer.xmlhttp://svn.apache.org/repos/asf/lucene/dev/trunk/solr/core/src/test-files/solr/conf/schema-tfidf.xml

    【讨论】:

    • 您好,Robert,我将下载的 lucene 与 ant 进行了编译,构建成功。它产生了“lucene-core-4.0-SNAPSHOT.jar”。我所做的只是删除了我的 lucene-core-3.0.2 库并添加了新库。但是,我在导入时遇到了很多错误。另外,我在哪里设置indexSearcher.setSimilarity(new BM25Similarity());
    • StandardAnalyzer 在快照版本 4.0 中丢失 :(。我应该如何替换它?
    • 您好,抱歉,这些问题在这里有点超出范围。 Lucene 4.0 是一个新的“主要版本”,它具有模块化的核心库、跨 lucene 和 solr 的重构、新的灵活索引和评分 api,这样的例子不胜枚举。阅读提供的 CHANGES.txt 和 MIGRATE.txt 非常重要,这不是直接升级。
    • 我检查了search-lucene.com/jd/lucene/org/apache/lucene/analysis/… 中的代码,虽然那里使用了标准分析器,但我在任何地方都找不到。该 API 中与标准分析器的链接也已损坏。我只需要将 lucene 用于我的研究目的,而无需深入研究它,并且由于 BM25,我正在从 3.0.2 迁移。哦,还有一件事,我在lucidimagination.com/sites/default/files/file/Eurocon2011/…查看了你的幻灯片,我想知道你用什么程序来创建这样的图表?
    • Nik,也许你想在 Lucene 邮件列表中积极参与这些问题......!
    【解决方案2】:

    如果您想使用最新和最强大的功能,您需要查看每晚构建的使用主干。

    http://lucene.apache.org/core/developer.html

    svn checkout http://svn.apache.org/repos/asf/lucene/dev/trunklucene_trunk

    这应该会为您提供 4.0,当然还有您想要的功能:

    【讨论】:

      【解决方案3】:

      从后备箱结帐。如果您想要的功能不存在,您需要一个 Lucene 补丁或夜间构建。由于您的功能补丁已经存在,您可以查看它并按照说明将补丁应用到您正在使用的 lucene 构建: http://wiki.apache.org/solr/HowToContribute#Review.2BAC8-Improve_Existing_Patches

      cd {your.checkout.of.lucene.dir}
      svn up
      wget "https://issues.apache.org/jira/secure/attachment/12493806/LUCENE-2959.patch" -O - | patch -p0 
      

      这会将补丁应用到您的 Lucene 构建中。

      【讨论】:

      • 哈哈 :) 我也在工作中运行 win7(时间不长)。您需要做的是获取某种 svn 客户端(可能是 tortoise svn,如果您运行的是 win7,请简化),检查最新版本的 lucene。然后从链接下载补丁并使用 tortoise svn 应用补丁。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 2016-04-07
      • 1970-01-01
      • 2015-09-11
      • 1970-01-01
      • 2012-11-21
      相关资源
      最近更新 更多