首先,我要说的是,我知道http://sphinxsearch.com/docs/current.html#conf-sql-attr-string http://sphinxsearch.com/docs/current.html#conf-sql-attr-string说“字符串只能用于存储和检索”并且“它们不能参与表达式,不能用于过滤、排序或分组”...
话虽如此,使用 Sphinx 2.0.2,通过 SQL 接口(在端口 9306 上)以及通过 SphinxSE 访问索引,我至少能够对我拥有的字符串属性进行排序。
因此,尽管这并不一定意味着文档完全错误,但它确实给我留下了一点希望,即我也可以通过该字符串属性进行过滤。
不幸的是,我不知道我是否可以,如果可以,我也不知道如何做。
这里有人可以让我摆脱痛苦吗?
[EDIT]
该属性是“mail_street_name”,我尝试了多种方法来过滤它。尝试过滤“box”,例如,在我尝试过的 SphinxSE 查询字符串中filter=mail_street_name,box
, filter=mail_street_name,"box"
and filter=mail_street_name,\'box\'
(转义是因为它位于字符串内)。这些查询不会导致结果集发生任何更改(就好像我根本没有尝试过滤该属性一样)。
通过端口 9306 上的 MySQL 连接我尝试过WHERE mail_street_name='box'
, WHERE mail_street_name="box"
, WHERE mail_street_name=box
并使用LIKE
代替=
,SphinxQL 都会给出语法错误(错误 1064 (42000))。
非常感谢。
正如我在上一条评论中所述,您可以尝试定义一个字段(http://sphinxsearch.com/docs/current.html#conf-sql-field-string)。
你可以做一个WHERE MATCH((@mail_street_name '*box*'))
根据文档,您仍然可以对其进行排序
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)