-2
  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');

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

    索引“增量”:搜索错误

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

    /usr/local/bin/search --index delta test Sphinx 2.0.6-release (r3473)

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

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

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

  11. 提前致谢....

瑜伽士

4

1 回答 1

1

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

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

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

于 2013-03-31T19:00:34.347 回答