【问题标题】:how to get only the top 100 matching results in neo4j FT index queries如何在 neo4j FT 索引查询中仅获取前 100 个匹配结果
【发布时间】:2013-10-22 20:24:36
【问题描述】:

如何在 neo4j FT 索引查询中只获取前 100 个匹配结果。我确信对于常见的搜索,索引将匹配数千个节点,但我只需要说前 100 个得分最高的匹配项。我应该设置什么配置设置或查询上下文来实现这一点。在没有密码的 REST API 中这怎么可能。要获得这 100 个得分最高的全文匹配项,必须使用 cypher。感谢您的帮助!

【问题讨论】:

    标签: rest lucene indexing neo4j neo4jphp


    【解决方案1】:

    最简单的方法可能是使用 Cypher 的 LIMIT 子句。由于您明确要求提供非密码解决方案,因此唯一的选择是编写一个 unmanaged extensionruns the index query 并且不完全消耗迭代器。

    【讨论】:

    • 感谢您的建议,这似乎是一个合理的选择。由此我了解到,我可以创建一个 REST 服务替代方案,它将返回得分最高的 100 场比赛。但是,如果 (1) 我们使用迭代器的前 100 个匹配项并将其作为对 REST 调用的响应传递,或者 (2) 或者,如果我们将所有 100 个匹配项作为对 REST 调用的响应返回,那么性能是否会产生巨大差异然后消耗前 100 个匹配项。我这样说是因为我从同一个物理服务器调用 REST,所以最终在这两种情况下似乎消耗了相同数量的内存。
    • 由于迭代器是惰性的,当您不消耗不需要的结果时会产生重大影响。此外还有 HTTP 开销和编组 json。
    • 谢谢!这是有道理的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    • 2015-04-03
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多