【问题标题】:Is there way to create & index N no. of 'fields' dynamically with Sphinx有没有办法创建和索引 N 没有。使用 Sphinx 动态显示“字段”
【发布时间】:2013-05-29 10:35:18
【问题描述】:

我正在使用 Sphinx(带有 Thinking Sphinx v2.0 for RoR 插件),

假设我有几个关于用户模型的索引,让我们说“名称”、“地址”及其一对多关联,如“帖子”、“cmets”等。

这意味着按帖子内容搜索将返回发布帖子的用户,并且使用 sphinx 的 :fieldmask 'rank mode',我能够确定由于匹配“帖子”而搜索了该用户。但是用户有“很多”帖子。那么如何确定它匹配的“帖子”。

有什么办法,在索引的时候可以动态指定索引。? 例如如果我可以将 index 'post_1'='' , 'post_5'='' 指定为 user1 的不同“字段”;类似 'post_2', 'post_7' for user2, 因此在搜索后它会返回我 user2 与匹配字段匹配为 post_7...

【问题讨论】:

    标签: sphinx thinking-sphinx


    【解决方案1】:

    恐怕Sphinx 不能为每条记录设置不同的字段,因此您希望使用这种方法是不可能实现的。

    如果您需要知道哪些帖子与查询匹配,我建议您改为在 Post 模型上进行搜索,然后您可以参考帖子的用户?您可以在重量之前按 user_id 排序,或者按 user_id 分组(因此每个用户只返回一个帖子)?您可以将用户数据引入帖子索引定义(如果帖子有一个用户,则该数据将保留为单个值,而不是每条记录的多个值)。

    希望这能让您清楚地了解您的选择。

    【讨论】:

      【解决方案2】:

      如果你知道,你想在一个查询中搜索 post_5,在另一个查询中搜索 post_7,你可以使用 json 作为 {post_1:, post_2:}。 问题是您必须知道要搜索的帖子数量。

      也许看看:https://stackoverflow.com/a/24505347/1444576 -如果它与您的示例相似。

      【讨论】:

        猜你喜欢
        • 2018-12-20
        • 2013-08-02
        • 1970-01-01
        • 2020-11-20
        • 2021-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多