什么是sphinx查询中嵌套分组的字段选择器语法

时间:2015-03-23 23:19:46

标签: sphinx

我有基于其参数创建sphinx查询的函数。 AND和OR可以嵌套,并定义特定的字段。

非常简单的例子: 带有索引标题和内容的文章。 (标题:('aaa'和'bbb'))和'ccc' 自然会创造: “(@title aaa bbb)ccc”

它不起作用,因为@ title的效果并不以右括号结束,而是以“ccc”结尾。正确的查询将是: “@title aaa bbb @ * ccc”或“ccc @title aaa bbb” 但是我既不控制命令也不控制术语的嵌套,所以生成“@title aaa bbb”的部分不知道以后是否会有“非字段ccc”,并且总是放“@ *”,以防万一,也是失败,这是它的最后一个任期。

有没有办法安全地附上@field选择器效果?

编辑: 此问题仅与2.1.7之前的版本相关。 事实证明,sphinx中存在一个与组内字段选择器相关的错误,该错误已在2.1.7中修复:

http://sphinxsearch.com/bugs/view.php?id=1917

1 个答案:

答案 0 :(得分:1)

为什么不做你已经找到的(@title aaa bbb) ccc?即如果是字段搜索,只需括在括号中。

简单有效。


  

总是加上“@ *”,以防万一,在上一学期也失败了。

如果是最后一个术语,只需删除它,在大多数语言中都很容易从字符串末尾删除一些内容。