将这些sphinx查询简化为1

时间:2014-05-15 12:33:10

标签: php sphinx

我有4个狮身人面像查询。 我想把它们合二为一。

  1. ^mango$
  2. ^mango !(^mango$)
  3. mango !(^mango$ | ^mango)
  4. *mango* !(^mango$ | ^mango | mango)
  5. 任何想法......?

1 个答案:

答案 0 :(得分:1)

我不认为你可以这样。一些查询彼此相反。

例如,1。仅说明芒果是田地中唯一的单词的文件。 但是2.说要排除这些文件。

和4.永远不会匹配任何东西!

如果您将查询与“AND”组合在一起,那么任何内容都无法匹配。

如果与“OR”结合使用,你最终会取消抵消的东西,即几乎归结为

^mango$ | ^mango | mango

反过来变成了

mango

编辑:因此,如果您只是想让“更好”的匹配升到顶部,那么您可以使用

的查询
mango | ^mango$ | ^mango | ^mango | mango$ 

在任何地方都需要芒果,但是更多项目通常应该更好的项目。

但可能需要玩排名模式,以获得良好的效果,WORD-COUNT模式,是一个很好的(如果原始启动),可以进一步扩展它与自定义排名。