有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Lucene按国家排序

我正在尝试将lucene从3.0升级到4.9。我编写了一个按国家进行的自定义排序,只需检查国家是否与查询要查找的国家相同,然后检查文档所在的大陆与查询要查找的大陆之间的距离

这不是一个过滤器——我想要所有的结果,只是按国家排序

例如,我正在寻找鞋店,我在美国

因此,美国所有的鞋店都将排在第一位,其次是加拿大、墨西哥、英国、俄罗斯和澳大利亚;c

我的自定义排序没有编译,我找不到任何关于如何在lucene 4中编写自定义排序的示例。X

我研究了地理空间搜索,但这似乎也是先过滤,然后排序

谁能帮我举一个lucene 4的定制排序示例吗。X


共 (1) 个答案

  1. # 1 楼答案

    也许,这个问题最好被视为得分问题,而不是排序问题。这样一来,问题就变成了:如何使用国家之间的距离(而不是df/idf指标)为文档打分。一旦正确评分,默认的排序方法将是合适的

    基本上,有必要扩展CustomScoreQueryCustomScoreProvider

    这篇博文(Lucene Custom Scoring)展示了一个扩展示例

    更确切地说,我的建议是:

    1-在扩展的CustomScoreProvider中添加“距离知识”

    2-在覆盖的customScore方法中,检索文档的国家/地区

    3-计算文档所在国家和查询所在国家之间的距离(记住通过CustomScoreQuery输入此信息)

    4-返回你的分数:)

    我希望这个策略适合你

    另外,这篇博文与4.6版有关。要正确使用4.9版,可能需要进行一些调整