【问题标题】:Manually setting seed for random sorting with SphinxSE?使用 SphinxSE 手动设置随机排序的种子?
【发布时间】:2015-05-16 04:20:52
【问题描述】:

我需要使用伪随机排序进行 Sphinx 查询。为了能够获得可重复的结果,我希望能够提供我为随机函数定义的种子。但我似乎找不到任何使用 SphinxSE(MySQL 引擎)执行此操作的文档。我在文档中发现您可以通过 OPTION rand_seed 使用 SphinxQL 执行此操作。 SphinxSE 中的等价物是什么?到目前为止,我只能找出自动播种的sort=extended:@random;

【问题讨论】:

    标签: mysql random sphinx


    【解决方案1】:

    在 SphinxAPI 中,有一个“hack”可以通过 setSelect 和“comment”放置选项...

     $cl->setSelect("* /* OPTION rand_seed=123 */");
    

    我不知道,但它有可能通过 SphinxSE 工作吗?

    WHERE query = 'test;sort=extended:@random;select=* /* OPTION rand_seed=123 */'
    

    (我没有要测试的活动 SphinxSE 安装)

    【讨论】:

    • 感谢您的建议。我尝试运行该查询,但似乎没有处理 OPTION。我也尝试设置 max_matches=1 并且它没有只返回一个匹配。现在我使用一个表达式来生成一个基于种子和每个匹配的 ID 的有点“随机”的顺序,通过 sort=expr:f(seed, id)。也许我应该改用 SphinxQL,因为它似乎提供了最大的灵活性......
    猜你喜欢
    • 2014-11-21
    • 2011-06-14
    • 2021-07-28
    • 2013-05-23
    • 2015-09-12
    • 2016-01-14
    • 1970-01-01
    • 2016-08-09
    • 1970-01-01
    相关资源
    最近更新 更多