是否有办法创造&指数N没有。使用Sphinx动态显示'fields'

时间:2013-05-29 10:35:18

标签: sphinx thinking-sphinx

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

假设我在用户模型上有几个索引,可以说“名称”,“地址”及其一对多关联,如“帖子”,“评论”等。

这意味着通过帖子内容进行搜索会返回发布帖子的用户,并使用sphinx的字段掩码“排名模式”,我可以确定用户是否因为匹配“帖子”而被搜索。但是用户有很多帖子。那么如何确定匹配的“帖子”。

有没有办法,索引时我可以动态指定索引。 对于例如如果我可以指定索引'post_1'='< post1content>' ,'post_5'='< post5content>'作为user1的不同“字段”;类似'post_2','post_7'为user2,因此搜索后它会返回我匹配匹配字段的user2作为post_7 ...

2 个答案:

答案 0 :(得分:0)

狮身人面像不能为每条记录设置不同的字段,我很害怕,所以你希望用这种方法做的事情是不可能的。

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

希望这能让您明白自己的选择。

答案 1 :(得分:0)

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

也许期待:https://stackoverflow.com/a/24505347/1444576 - 如果它与你的例子类似。