mysql - Thinking Sphinx - 搜索博客文章的标题、内容和标签

标签 mysql sql ruby-on-rails ruby thinking-sphinx

我正在尝试更新博客文章的搜索功能,用于搜索标题、内容和标签。目前,Thinking Sphinx 并未搜索标签。它正在执行以下查询:

SELECT * FROM `blog_post_core` WHERE MATCH('vacation')

如何让搜索包含标签?下面是索引文件。

ThinkingSphinx::Index.define 'blog/post', with: :active_record do
  indexes :title
  indexes :content
  indexes "replace(tag_cache, '#{TAG_SEPARATOR}', ' ')", as: :tag_name
  indexes user.username, as: :author
  has :created_at
end

编辑: TAG_SEPARATOR 是一个类似于“!!!”的字符串。 tag_cache 是一个包含所有标签但分开的字符串,例如“vacation!!!work”。替换实际上获取 :tag_cache 属性并将其拆分为许多标签吗?

最佳答案

也许您已经意识到这一点,但如果没有:关于 Sphinx 的事情以及 Thinking Sphinx 如何与其集成:插入/更新不会自动添加到您的 Sphinx 索引文件中。

因此,如果您希望搜索结果准确,则需要定期运行 ts:index rake 任务。

注释中提到的

ts:rebuild 会停止 Sphinx,然后运行 ​​ts:index,然后再次启动 Sphinx - 但如果您不更改结构你的索引(只是数据),那么就不需要 Sphinx 停止/启动。它有点像 db:migrate 的等价物。最好坚持使用 ts:index 来执行计划任务。

关于mysql - Thinking Sphinx - 搜索博客文章的标题、内容和标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28222589/

相关文章:

php - 优化大表上的计数 SQL 查询

ruby-on-rails - Mechanize 不通过 CSS 选择器方法识别 anchor 标记

mysql - 缓慢的 MySQL 查询让我伤透了脑筋!

mysql - 帮助mysql查询或数据库设计来帮助我实现这一目标

java - Openshift MySQL 连接器

php - WAMP 和 XAMPP 给出内部服务器错误

sql - 在复杂的 mysql 分页查询逻辑方面需要帮助

mysql - 从 F 表按日期搜索的最新金额从另外两个表插入 R 表,并使用表 S mysql 中的其他数据

ruby-on-rails - 如何使用 RoR 助手添加下拉菜单/选择?

ruby-on-rails - windows 10 ruby​​2.5 rails 5.1.5 无法加载这样的文件——sqlite3/sqlite3_native (LoadError)