问题标签 [thinking-sphinx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1830 浏览

ruby-on-rails - 思考狮身人面像,联想不起作用

我有一个模型:

当我运行时:

我得到:

我的 'config/development.sphinx.conf' 有这个奇怪的地方:

所以由于某种原因,联想看起来很糟糕,我哪里出错了,我该如何解决这个问题?

(running rails 2.3.4 和最新的thinking sphinx 1.2.11)

0 投票
4 回答
2685 浏览

ruby-on-rails - 使用 gem 时如何包含 capistrano 思考 sphinx 任务

我使用宝石来思考狮身人面像:

所以:

网站上规定的内容不起作用。

使用 gem 时,如何在我的 deploy.rb 文件中包含 capistrano thinking sphinx 任务?

编辑

添加:require 'thinking_sphinx/deploy/capistrano'

给我:

0 投票
1 回答
1015 浏览

ruby-on-rails - 产品搜索的类别下拉列表

我有许多产品,这些产品与使用会员资格的 has_many 相关联。

我正在尝试创建一个搜索框,任何人都可以在其中搜索产品,同时还可以使用类别下拉列表过滤他们的搜索(因此只能检索具有相关类别的产品)。

Thinking_sphinx 索引在产品模型中我没有收到任何错误,但下拉菜单不会影响搜索。

0 投票
4 回答
770 浏览

ruby-on-rails - 如何从同一个连接表中搜索不同的条件?

使用这些关联,只有放大结果会返回正确的结果,但是当我尝试搜索第二个关联时,它将返回 0 个结果。

使用的示例代码

但是当我颠倒 define_index 的顺序时,就会发生相反的情况。因此物镜直径结果返回正确的结果,放大倍率结果返回 0。

使用 Rails v2.2、Thinking-Sphinx 作为插件 v1.2.12 和 Sphinx 0.9.8

编辑:查看生成的 sql_query 值显示第二个属性的连接使用了错误的关联,因此它不会返回预期的结果。

简化结果:

0 投票
1 回答
313 浏览

ruby-on-rails - rails - 将复杂的可见性设置应用于思考 sphinx 结果

在我正在开发的产品中,我有一个消息模型。

消息可以限制在群组中,也可以不受限制(适用于所有人)。

如果用户属于消息组之一或消息不受限制,则用户可以看到该消息。

这是选择可见消息的查询(希望它可以澄清我的意思)

(2,3,4,5,6,1) 是用户所属的组,每个用户都不同

这是使用子查询的类比查询,希望它有助于澄清需要什么

是否有可能以某种方式将此可见性设置应用于思考狮身人面像的结果?意味着将这个 OR 和 IN 应用于

?

如果不可能,另一个问题是 - 是否有可能以某种方式获取在搜索中找到的所有对象的 ID,

这样我就可以自己执行查询,只需将 AND 添加到我的 WHERE 条件

我想没有 LEFT JOIN 的查询和添加 AND 到 WHERE 对于 mysql 来说都会有点资源密集型,但如果其他解决方案不可行,那么这会做

谢谢,

帕维尔·K

0 投票
6 回答
1893 浏览

ruby-on-rails - 认为 Sphinx delta 索引在生产中失败

这是我确定的:

  1. Delta 索引在开发中运行良好
  2. 当我推送到生产服务器时,增量索引不起作用,并且 searchd.log 中没有记录任何操作
  3. 我正在运行 Phusion Passenger,并且按照基本故障排除指南中的建议,已确认:
    1. www-data 有权运行索引 rake 任务(手动从命令行运行它们)
    2. indexer 和 searchd 的路径正确(/usr/local/bin)
    3. production.log 中没有错误

我到底可能会错过什么?我正在运行 Ruby Enterprise 1.8.6、Rails 2.3.4、Sphinx 0.9.8.1 和 Thinking Sphinx 1.2.11。

谢谢!

0 投票
1 回答
706 浏览

ruby-on-rails - 狮身人面像返回过时的结果

环境:

Memcached、Rails 2.2.2 + cache_money、Sphinx + Thinking sphinx

以下会产生陈旧的结果:
- 添加记录;mysql 包含正确的数据
- 此时记录可能缓存在内存中
- 重新索引 sphinx
- sphinx 使用正确的数据返回正确的结果
- 编辑记录
- 缓存正确无效,mysql 包含正确的更新数据
-再次重新索引 sphinx
- sphinx 现在已经过时了

重新索引 sphinx、清除 memcached 和/或编辑有问题的记录都没有效果。一起禁用缓存层(cache_money 加上 memcached)也没有效果。

0 投票
3 回答
1310 浏览

ruby-on-rails - 如何确保 Sphinx 守护程序运行?

我正在使用 CentOS 5.3、Apache 和 Phusion Passenger ( mod_rails) 设置生产服务器。我有一个使用 Sphinx 搜索引擎和 Thinking Sphinx gem 的应用程序。

根据Thinking Sphinx 文档...

如果你真的想搜索索引数据,那么你需要运行 Sphinx 的 searchd 守护进程。这可以使用以下任务进行控制:

确保这在生产中发生的最佳方法是什么?我可以部署我的应用程序,然后手动运行rake thinking_sphinx:start,但我喜欢设置一些东西,这样如果我不得不重启服务器,一切都会恢复。

我应该在初始化程序中调用该 Rake 任务吗?还是里面的东西rc.local

0 投票
1 回答
2027 浏览

ruby-on-rails - 狮身人面像增量索引——仍然需要重建主索引?

我一直在阅读 Sphinx 搜索引擎和 Thinking Sphinx gem。在 TS文档中它说...

与许多其他搜索服务相比,Sphinx 有一个主要限制:您无法更新索引中单个文档的字段,而必须重新处理该索引的所有数据。

如果我理解正确,这意味着当用户添加或编辑某些内容时,更改不会反映在索引中。因此,如果他们添加一条记录,则在重建整个索引之前,它不会出现在搜索中。或者如果他们删除了一条记录,它在搜索中出现,然后导致某种错误或令人沮丧的行为。

此外,在重建索引时,Sphinx 被关闭。因此,您的应用程序的搜索功能会定期离线(每小时一次,每隔几个小时一次),任何尝试进行搜索的人都会收到错误或“稍后再试”消息。

好的,显然这些在现实世界的应用程序中都是不可接受的。所以你几乎必须使用增量索引。

但显然您仍然需要定期关闭搜索引擎并进行完整索引...

打开增量索引并不会消除定期运行完整重新索引的需要,否则增量索引本身将增长到与核心索引一样大,这消除了保持独立的优势。它还会减慢您对更改模型记录的服务器的请求。

我真的不明白文档在这里说什么。也许有人可以帮助我。我认为增量索引的全部意义在于您不需要定期重建索引。只要数据发生变化,它就会立即更新。

因为每小时或每件事都重建索引会完全搞砸,对吧?

0 投票
1 回答
234 浏览

ruby-on-rails - Thinking Sphinx - Roats Index 每次更新或创建模型时,如何停止?

每次我在 Rails 应用程序中创建或更新模型时,Sphinx 都会出现以下输出:

Sphinx 0.9.8.1-release (r1533) 版权所有 (c) 2001-2008, Andrew Aksyonoff

使用配置文件'/Users/jason/development/projects/active/project/config/development.sphinx.conf'...索引索引'ad_delta'...收集17个文档,0.0 MB收集0个attr值排序0.0 Mvalues, 100.0% 完成排序 0.0 Mhits,100.0% 完成总共 17 个文档,944 字节总共 3.827 秒,246.69 字节/秒,4.44 文档/秒旋转索引:成功发送 SIGHUP 到 searchd (pid=10655)。

这对性能造成了很大影响。

有什么方法可以防止 sphinx (thinking_sphinx) 发生这种情况?