【问题标题】:sphinx search error on amazon linux [closed]亚马逊 linux 上的 sphinx 搜索错误 [关闭]
【发布时间】:2013-04-01 03:00:34
【问题描述】:
  1. 我已经在 Amazon Linux 上安装了 sphinx 2.0.6 版本。
  2. 我已通过 root 用户运行 /usr/local/bin/searchd。
  3. 我已为所有(所有索引文件、searchd.log、query.log、searchd.pid)设置了 777 权限以避免权限问题。
  4. 我已经设置了 main-delta 索引。

  5. 我希望在数据库中插入新记录后,应该从 php 代码更新增量索引。我想在插入后立即向用户显示这条新记录。
    为此,我使用了

  6. exec(/usr/local/bin/indexer --rotate delta_index) 在我的 php 代码中。并使用 sphinxapi 编写代码以返回此新记录。(使用 codeignitor 框架)

    $result = $this->sphinxclient->query($term,'main delta');

    但是每次我这样做,它都会抛出一个错误:

    索引'delta':搜索错误

  7. 在那里创建索引文件。但搜索不起作用。
  8. 我也从命令行进行了测试搜索。但是发生了以下错误

    /usr/local/bin/search --index 增量测试 Sphinx 2.0.6 版本 (r3473)

    使用配置文件'/usr/local/etc/sphinx.conf'... 索引'delta':搜索错误:

  9. 请问有人知道哪里出了问题吗???

  10. 请帮助我了解如何通过 php 在数据库上插入后更新索引。以及如何让狮身人面像搜索开始工作。请给我任何链接,文章,指导任何东西!

  11. 提前致谢....

瑜伽士

【问题讨论】:

  • 在所有可能的情况下都避免使用 777,特别是在处理系统包配置文件时。寻找替代方法,例如将所有权更改为所需用户。或给予最低限度的可行许可。

标签: php mysql codeigniter amazon-ec2 sphinx


【解决方案1】:

如果您希望“php”(即网络用户)能够重建索引器。最好以该用户身份运行 searchd。所以同一个用户运行 indexer 和 searchd。通常是“www-data”或“apache”之类的东西——取决于分布。

将所有 sphinx 文件设置为该用户拥有,不要在文件上设置“执行”位。

如果您在尝试运行查询时收到“index 'delta': search error”,则表明查询功能在后台使用“搜索”命令 - 糟糕!使用正确的 sphinxapi(即 sphinxapi.php) - 如果它不起作用,请检查 getLastError/getLastWarning。

【讨论】:

  • 谢谢 Barry ...提示非常有用。我的问题已解决...通过执行 1. 由 apache 用户启动 searchd 服务....“sudo -u apache /usr/local/bin/searchd” 2. 为所有索引文件、searchd.pid、bin 文件夹设置适当的权限等等...... 3. 使用 sphinxapi.api
猜你喜欢
  • 2012-12-08
  • 2013-01-06
  • 2016-11-20
  • 1970-01-01
  • 2011-12-29
  • 1970-01-01
  • 2011-06-12
  • 2013-01-01
  • 2017-10-18
相关资源
最近更新 更多