Sphinx 2.0.2筛选sql\u attr\u字符串属性

Sphinx 2.0.2筛选sql\u attr\u字符串属性,sphinx,Sphinx,首先,我要说的是,我知道“字符串只能用于存储和检索”以及“它们不能参与表达式,不能用于过滤、排序或分组” 话虽如此,使用Sphinx2.0.2,通过SQL接口(在端口9306上)和SphinxSE访问索引,我至少能够根据我拥有的字符串属性进行排序 因此,尽管这并不一定意味着文档是完全错误的,但它确实给我留下了一点希望,我也可以通过该字符串属性进行过滤 不幸的是,我不知道我是否能做到,如果我能做到,我也不知道如何做到 有人能帮我摆脱痛苦吗 [编辑] 属性是“mail\u street\u name

首先,我要说的是,我知道“字符串只能用于存储和检索”以及“它们不能参与表达式,不能用于过滤、排序或分组”

话虽如此,使用Sphinx2.0.2,通过SQL接口(在端口9306上)和SphinxSE访问索引,我至少能够根据我拥有的字符串属性进行排序

因此,尽管这并不一定意味着文档是完全错误的,但它确实给我留下了一点希望,我也可以通过该字符串属性进行过滤

不幸的是,我不知道我是否能做到,如果我能做到,我也不知道如何做到

有人能帮我摆脱痛苦吗

[编辑]

属性是“mail\u street\u name”,我尝试了多种方法对其进行过滤。尝试在“box”上进行筛选,例如,在SphinxSE查询字符串中,我尝试了
filter=mail\u street\u name,box
filter=mail\u street\u name,“box”
filter=mail\u street\u name,\'box\'
(因为它位于字符串中而转义)。这些查询不会改变结果集(就好像我根本没有尝试过滤该属性一样)

通过端口9306上的MySQL连接,我尝试了
WHERE-mail\u-street\u-name='box'
WHERE-mail\u-street\u-name=“box”
WHERE-mail\u-street\u-name=box
,并使用类似
而不是
=
,所有这些都将从SphinxQL获得一个语法错误(错误1064(42000))


非常感谢。

正如我在上一篇评论中所说的,您可以尝试定义一个字段(http://sphinxsearch.com/docs/current.html#conf-sql字段字符串)

你可以做一个
WHERE匹配(@mail\u street\u name'*box*')


根据文档,您仍然可以对其进行排序

您是否尝试过像其他属性一样对其进行过滤?都是通过API和SphinxQL实现的?结果是什么?嗨,米切尔·范瓦尔德杰姆:我刚刚用我的尝试编辑了这个问题。值得一提的是,我还没有为我的语言尝试过API,因为我一直在尝试使用MySQL。谢谢。恐怕我不能再帮你了。看起来这真的不可能…嗯。。。也许可以为它创建一个字段,你可以对它进行匹配,然后我可能不得不这样做。。。唯一的问题是,当我在我真正想要搜索的字段中进行“真正的搜索”时,我必须忽略该字段。我想这就是我付出的代价。谢谢。事实上,在正常搜索中,您必须排除此字段。我同意这不是最好的方法,但我想没有其他方法了。幸运的是,你可以使用“@!(mail_street_name)关键字”搜索除上述字段外的所有字段。(甚至可以指定用逗号分隔的多个字符)。这是一个有用但未记录的功能。@barryhunter:谢谢。我在实现这一点上有点问题,尽管。。。该功能在2.0.2测试版中可用吗?如果是这样的话,我可能会在斯芬克斯论坛上联系你,了解更多细节。