【发布时间】:2014-08-26 19:13:29
【问题描述】:
我编写了一个名为MyNewSimilarityClass 的新类,它扩展了 Solr 中的DefaultSimilarity 类;特别是,我在该类中定义了一个自定义方法,因为现有的方法不足以满足我的需求,我想改进排名算法。
为了确保 Solr 使用我的新类,我在 schema.xml 中添加了以下行:
<similarity class="org.apache.lucene.search.similarities.MyNewSimilarityClass"/>
我知道我的类已添加到类加载器中,并且 Solr 实际使用它:当我运行 Solr 查询时,我覆盖和修改的方法正在工作。
但是,当我运行查询时,Solr 目前不使用我的自定义方法。虽然我在我的类中定义了新方法并且我的类按预期加载,但我不知道我应该在哪里调用我的自定义方法以便在排名算法中使用它。
我知道在 Lucene/Solr 中扩展类时如何覆盖方法,我不知道如何添加新的/自定义方法。
我需要修改 Solr 中的哪个文件,以便查询使用我的自定义方法?
【问题讨论】:
-
在尝试破解 Solr 之前,您应该认真学习一些 Java。学完Java后,这个答案会对你有所帮助:stackoverflow.com/questions/3035831/solr-lucene-scorer
-
另外,这是您第四次发布此问题,您仍然发布完全相同的背景材料,而没有根据您尝试过的内容或出现问题的地方进行扩展。
-
@MatsLindh 我道歉;这次我面临一个相关但不同的问题。我已尽我所能编辑并改进了我的问题。希望现在它会更有意义。如果仍然缺少相关信息,请告诉我。