gpt4 book ai didi

ruby-on-rails - 如何实现像Stack Overflow一样的搜索

转载 作者:行者123 更新时间:2023-12-03 00:44:48 27 4
gpt4 key购买 nike

我已经使用 Sphinx 实现了全文搜索和 Thinking Sphinx 。我想添加按列搜索。像这样的事情:-(以 Stack Overflow 为例)

假设您想查看与您相关的事件,只需键入:

  user:me

然后它将返回一个结果,其中包含与piimesons相关的所有问题和答案。

如果您输入

 votes:15

然后它将返回一个结果,其中包含所有标记为超过 15 票的问题。

如果你输入

  user:me votes:15

然后它将返回所有属于您且投票数超过 15 票的问题和答案。

我该如何实现这个东西?

现在我的搜索结果基于全文搜索。如何包含这些功能?

Sphinx 或 Solr 中可用的任何选项或者任何其他搜索引擎?

最佳答案

:思维狮身人面像中带有选项。

首先,您必须在索引定义 ( check out attributes section here ) 中定义这些属性。

has views_count, :as => :views, :type => :integer
has user.id, :as => :user, :type => :integer

然后你可以搜索这样的帖子:

Post.search '', :with => {:views => 12..maxint, :user => User.first.id}

(我不确定是否有更优雅的给出开放范围的可能性,但 12..max_int 应该足够了)

两件重要的事情:

  1. 如果你想统计相关对象(例如响应),你应该使用计数器缓存
  2. 如果您的“用户”是多态关联,我建议使用“CRC32(CONCAT(user_type, user_id))”而不是user.id

关于ruby-on-rails - 如何实现像Stack Overflow一样的搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3149790/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com