有没有办法在同一个solr查询请求中查询stat值?

时间:2016-04-29 20:17:31

标签: solr facet

我希望能够使用术语构面来存储和生成统计数据,例如每个国家/地区的平均成本,但也能够在该平均值上指定查询子句。

用sql术语来说就是这样 SELECT country, avg(cost) GROUP BY country HAVING cost > 150

这里的挑战是如何在avg(cost)的stat函数上定义查询条件(> 150)。

1 个答案:

答案 0 :(得分:0)

我没有尝试使用5.x找到解决方案,而是查看了6.0版中的SQL RequestHandler。这要求我升级到6.0以及以Cloud模式运行。

此示例请求解决了我的问题:

 http://localhost:8983/solr/MyCore/sql?wt=json&stmt=select country, avg(cost) from MyCore where region = 'east' group by country having avg(cost) > 150

升级步骤,因为我从单核到基于云。

  1. 我将6.0安装到新目录中。
  2. 我安装了最新的java 8
  3. 添加了Java_home(设置为java install dir)和_Java_options (设置为-Djava.net.preferIPv4Stack = true)到windows env属性
  4. 我将SolrConfig.xml更改为使用而不是使用托管架构
  5. 将schema.xml更新为现有架构

  6. Solr start -cloud

  7. Solr create_collection -c MyCore -d C:\ solr-6.0.0 \ server \ solr \ MyCore \ conf -shards 1
  8. 重新索引我的数据
  9. 可能是更好的方式,但我想我会分享。