我希望能够使用术语facets来存储和生成统计数据,比如每个国家的平均成本,但也能够根据平均值指定查询子句。
用sql术语来说SELECT country, avg(cost) GROUP BY country HAVING cost > 150
这里的挑战是如何在avg(成本)的stat函数上定义查询条件(>150)。
我没有尝试使用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
从单一核心到基于云的升级步骤。
- 我把6.0安装到一个新目录中
- 我安装了最新的java 8
- 添加了Java_home(设置为Java安装目录)和_Java_options(设置为-Djava.net.prpreferPv4Stack=true)到windows环境属性
- 我将SolrConfig.xml更改为使用,而不是托管架构
已将schema.xml更新为我现有的模式
Solr启动-云
- Solr create_collection-c MyCore-d c:\Solr-6.0.0\server\Solr\MyCore\conf-shars 1
- 重新索引了我的数据
也许是更好的方式,但我想我会分享。