我有以下手册斯芬克斯查询(经由MySQL客户端),即产生正确的结果,我想通过从导轨思考斯芬克斯调用它。对于我的生活,我正在思考如何在思维狮身人面像中做出“独特”的查询工作。通过,思考斯芬克斯组与重复计数
mysql> select merchant_name, count (distinct part_number) from product_core group by merchant_name;
+-----------------------+-----------------------------------------+
| merchant_name | count (distinct part_number) |
+-----------------------+-----------------------------------------+
| 1962041491 | 1 |
| 3208850848 | 1 |
| 1043652526 | 48754 |
| 770188128 | 1 |
| 374573991 | 34113 |
+-----------------------+-----------------------------------------+
请注意:这个mySQL查询是agaist狮身人面像,而不是mySQL。我使用mySQL客户端连接到Sphinx,如:mysql -h 127.0.0.1 -P 9306
。这适用于调试/开发。我的实际分贝是Postgres。
鉴于此,并添加更多的上下文,我试图结合思考斯芬克斯group_by
count('Distinct' ...)
。
所以,这个查询的工作:
Product.search group_by: :merchant_name
...而且,这个查询的工作:
Product.count ('DISTINCT part_number')
...但是,这个组合查询抛出一个错误:
Product.search group_by: :merchant_name, count ('DISTINCT part_number')
SyntaxError: (irb):90: syntax error, unexpected (arg, expecting keyword_do or '{' or '('
...merchant_name, count ('DISTINCT part_num...
merchant_name和part_number都被定义为属性。
环境:
Sphinx 2.2.10-id64-release (2c212e0)
thinking-sphinx 3.1.4
rails 4.2.4
postgres (PostgreSQL) 9.3.4
我也曾尝试使用构面,但无济于事:
Product.search group_by: :merchant_name, facets: :part_number
Product.facets :part_number, group_by: :merchant_name
有关其他信息,并看看这可以通过思考狮身人面像调用来完成,这里是一个基本的例子。我有一个产品表(和相关索引),列出了商家和他们的产品(我同意,它可以进行标准化,但是它来自数据馈送,Sphinx可以按原样处理):
+-----------------+-------------------+
| merchant | product |
+-----------------+-------------------+
| Best Buy | Android phone |
| Best Buy | Android phone |
| Best Buy | Android phone |
| Best Buy | iPhone |
| Amazon | Android phone |
| Amazon | iPhone |
| Amazon | iPhone |
| Amazon | iPhone |
| Amazon | Onkyo Receiver |
+-----------------+-------------------+
的思维狮身人面像,我想:一组)的行由商人,和b)为每个组创建一个“独特”的产品数量。
上面的例子,应该给予以下结果:
+-----------------+------------------------+
| merchant | count(DISTINCT product |
+-----------------+------------------------+
| Best Buy | 2 |
| Amazon | 3 |
+-----------------+------------------------+
什么是与查询的问题? merchant_name是否返回整数?或者,除此之外,总值是否不准确?你使用的是什么版本的狮身人面像? – pat
Pat,我的原始查询通过MySQL客户端(它证明我的索引和属性起作用)完美地对抗Sphinx,我只是无法将查询的'区域'部分写入ThinkingSphinx调用。 –