问题标签 [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 投票
3 回答
1805 浏览

sphinx - 您如何从 Sphinx 获取所有记录?

如何使用 Sphinx 从索引中获取所有记录?就像 SELECT * FROM 索引一样?我知道我可以这样做以获取与特定关键字匹配的所有记录:/usr/local/sphinx/bin/search 关键字,但我想做的是从索引中获取所有记录。

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 回答
440 浏览

mysql - Sphinx 搜索引擎的首字母缩略词

我怎样才能索引像“mia”这样的首字母缩略词?当我搜索“mia”时,我得到的结果是“mia”而不是“mia”。当我搜索“mia”时,我什么也得不到。

编辑:

解决方案大致如下:ignore_chars = -, .

0 投票
1 回答
2027 浏览

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

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

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

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

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

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

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

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

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

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

0 投票
3 回答
572 浏览

ruby-on-rails - 如何在rails中使用狮身人面像并根据列值排除结果

我有一个简单的查询来显示活跃的用户,但不知何故它仍然显示不活跃的用户。我正在使用狮身人面像。查询如下所示:

条件哈希如下所示:

条件包括::is_expired => false,但它会获取那些具有 :is_expired = true 的用户。

我需要做什么才能使其仅获取那些未过期的记录?

0 投票
2 回答
402 浏览

php - Sphinx 随机无法组合子查询

我有这个 sphinx 搜索引擎,我通过 Zend 使用 sphinxapi.php 。它工作得很好。真的真的很棒。

但是,有一个问题:它随机失败。

如此处所见,我搜索一种语言和任意数量的标签,最终内爆为单个查询字符串(而不是制作大量子查询)。

所以,通常,这就像一个魅力,但偶尔狮身人面像返回它找到了 2000 个英文条目,比如说,1000 个带有标签“图片”(或其他纯英文单词)的条目,但符合这两个结果的零命中,这纯粹是假的。事实上,刷新页面一切都恢复正常,大约有 800 个实际结果。

我的问题是为什么它会这样做,我该如何让它停止?

有任何想法吗?

:编辑:添加了缩短的输出日志

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) 发生这种情况?

0 投票
2 回答
259 浏览

mysql - 在受文件类型限制的 MySQL 数据库表中搜索文件名?

我有一个从另一台服务器复制的 MySQL 数据库。数据库包含一个包含这些列的表

ID、文件名和文件大小

表中有超过 4'000'000 条记录。我想在 FileName (varchar) 列中快速搜索

我发现我可以使用这个 Sphinx 搜索引擎。问题是我想按文件类型限制搜索。我是否必须以及如何(触发器?)为所有行提取文件扩展名?可能我必须创建另一个表(因为这个表是复制的)并以 1:1 的关系加入它们?

你能给我一些建议吗:)

0 投票
1 回答
170 浏览

search - 模糊数据的交叉引用数据库

我目前正在从事一个项目,我必须将大量用户生成的名称与规范格式的相同名称的单独列表进行匹配。问题是用户生成的名称包含大量拼写错误、缩写以及简单的无效数据,因此很难与规范数据进行交叉引用。关于这样做的方法有什么建议吗?

这不必实时完成,在这种情况下,准确性比速度更重要。

目前对此的想法是:

  1. 使用现有的搜索实现(如 Lucene 或 Sphinx)在规范数据库中对用户输入的名称进行模糊搜索,我认为它使用类似 Levenshtein 距离之类的东西。
  2. 交叉引用 SOUNDEX 散列(据说是根据名称的发音而不是拼写计算)而不是使用实际名称。
  3. 以上的一些组合

有人对这些或他们自己的想法有任何反馈吗?

我担心的一个问题是,上述方法都不能很好地处理缩写。谁能指出一些机器学习方法的方向,以实际搜索扩展的缩写(或告诉我我疯了)?提前致谢。

0 投票
1 回答
312 浏览

django - 如何使用狮身人面像搜索获得所有模型的组合结果

最近我在我的网站上实现了 django-sphinx 搜索。每个单独的模型都可以正常工作。但现在我的客户要求发生了变化。他希望首先从匹配查询中将结果显示为“标题”,然后是描述,然后很快。但我认为 sphinx 给出了特定于每个模型的结果,但没有给出所有模型的组合结果。

因此,任何人都可以帮助我如何从匹配查询中显示“标题”,然后是描述,然后很快从所有模型的结果中显示。