sphinx SphinxQL不支持OR操作解决方案

  • A+
所属分类:Sphinx

sphinx是一个开源的全文搜索引擎,与mysql、postgreSQL、xml完美结合,查询速度非常快,支持分布式检索,可扩展性好,并行处理,高效的利用内存和磁盘IO。强大的过滤、分组、排序、分页功能,强化mysql的功能和性能,针对mysql分库分表后,sphinx也是一种可行的解决方案。关于sphinx应用的一些文章可以参见http://www.ttlsa.com/?s=sphinx

在使用sphinx SphinxQL接口过程中,使用多个属性来进行过滤,发现不能使用OR。

mysql

查询语句:select * from ttlsa_com_main where usecount=8290 or uptime=1342076161;

报错的信息如下:ERROR 1064 (42000): syntax error, unexpected TOK_OR, expecting $end near 'or'。

查了下官方文档有这么一句:WHERE clause. This clause will map both to fulltext query and filters. Comparison operators (=, !=, <, >, <=, >=), IN, AND, NOT, and BETWEEN are all supported and map directly to filters. OR is not supported yet but will be in the future.

目前WHERE子句不支持OR。那么该如何解决呢?

1. 对于单个属性列的多个值过滤可以使用IN。如

2. 对个多个属性列。可以这么来做,查询语句还是上面的那句,改成下面的

这样就可以了。 sphinx做为全文搜索,很多地方都在大量的时候。强烈推荐,谁用谁知道。

如需转载请注明出处: sphinx SphinxQL不支持OR操作解决方案  http://www.ttlsa.com/html/2361.html

weinxin
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~

评论已关闭!

目前评论:11   其中:访客  11   博主  0

    • lezhizhe_net 9

      So easy 看这里就是用的Sphinx: http://www.jihaoba.com

      • yyl-211 1

        sphinxQL实现手机号模糊搜索如何实现?

        • yyl-211 1

          sphinxQL如何实现手机号模糊搜索?

          • masaka 9

            多谢分享

              • 默北 默北 6

                @masaka 评论” />

              • 路人 9

                和mongodb是一个思路,不错

                  • 默北 默北 6

                    @路人 怎么说?

                  • hello 0

                    mark下

                    • fa 1

                      一个字,好

                      • sphinxer 0

                        sphinx 谁用谁知道