2013-02-20 116 views
0

我正在构建一个全文搜索引擎,它返回短语的结果。 (a)我试图仅使用SPHINX中的SPH_MATCH_PHRASE使用PHP匹配短语。问题是,当我搜索时,例如“这是一个短语”,它也产生了“这是一个短语”和“一个短语”和“这是一个”和“这是”和“短语”等相关结果。是否有办法将结果限制为仅完整的短语?仅SPHINX匹配短语和PHP中的SPHINX自动索引

我试过的东西:我搜索了S/O并找到了How to query Sphinx for an exact matching phrase?,建议将搜索查询放在引号中。我试了一下,但是当追加到搜索项时,这返回了零搜索结果。 (b)这是我第一次使用SPHINX,并且我几乎没有Linux的经验,但我设法在Linux VPS上运行它。我开始索引器服务,但我不知道如何使它自动间隔地重新索引。这是SPHINX配置还是Linux命令?

我试过了:我搜索了上面(b)的S/O,发现这个,但是对于Ruby on Rails thinking sphinx automatic indexing,所以它没有帮助我。

感谢

回答

1

这表明将搜索查询加引号。

是的。这适用于扩展匹配模式。 SPH_MATCH_EXTENDED

在php中确保您正确使用$ cl-> setMatchMode()。

我不知道如何让它重新索引所有自动间隔。

Cron。您可以设置一个crontab作业,以适合您情况的间隔调用索引器程序。

+0

谢谢巴里。但问题是我们不想让用户不得不在他们的查询中插入引号。我尝试在代码中添加引号,然后使用了SPH_MATCH_EXTENDED,但我没有找到任何结果。我会再试一次。 至于Crontab作业,我在Linux提示符下配置了索引器,因此我不知道如何在Linux提示符下执行CRON ...但是从您的更多提示中,我可能会很幸运。 – Cogicero 2013-02-20 14:36:31

+0

如果不想自己做,那么使用SPH_MATCH_PHRASE,但是插入引号是所有的狮身人面像在使用SPH_MATCH_PHRASE时会做的。在EXTENDED模式下,所有内容都被抽离出来:) – barryhunter 2013-02-20 14:45:30

+0

http://google.com/search?q=cron+indexer+sphinx – barryhunter 2013-02-20 14:46:54

0

Baryhunter在上面接受的答案中的许多链接和提示证明是有用的。这为我做了索引部分,以防万一以后有人需要。

/usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf && /usr/local/sphinx/bin/searchd --rotate --config /usr/local/sphinx/etc/sphinx.conf 
+1

这也是错误的。 - 旋转开关继续分度器。不需要调用searchd所有'/ usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --rotate index_names_here' – barryhunter 2013-02-20 17:13:19

+0

哦哇* _ *叹息不够清晰的文档。再次感谢巴里。 – Cogicero 2013-02-20 18:44:16