【发布时间】:2012-10-15 09:43:07
【问题描述】:
我正在使用 sphinx 将结果返回到自动完成列表。返回时,结果会被缓存在客户端,以避免对服务器造成不必要的访问。
逻辑如下:
- 对缓存的结果执行客户端模糊匹配算法并在自动完成中显示
- 如果matches.length
- 返回结果并附加到自动完成列表
目前在 ajax 请求中,我正在发送在客户端缓存中匹配的 ID 数组,并使用 PHP 循环遍历 sphinx 的结果并将它们从匹配项中删除。
这不仅效率低下,而且在正确限制结果方面当然会给我带来问题。
我想要做的是从 Sphinx 中排除这些特定的 ID 匹配自己,以便限制子句实际上是相关的。
所以问题实际上是,如何使用 PHP api 在 Sphinx 查询中排除某些 ID。例如"查找与用户名 John 匹配的所有匹配项,除非他们具有以下任何 ID...."
我一直在阅读 sphinx 文档,并阅读了大量关于“扩展模式”匹配和使用各种运算符的内容,但是我发现自己很困惑,不确定如何继续。
任何帮助将不胜感激。
【问题讨论】: