我有一个索引数据(使用来自rdbms的solrj索引),具有与银行相关的字段,例如(示例):customerid, cust_name, accountno, amount, positions, pos_value, EOD_value等
现在我想对数据和搜索查询做一些搜索:
- 十大股票/仓位(基于股票价值)
- 银行金额递减顺序前5位客户
- 哪只股票单日涨幅最大(及股票详情)
- 特定时间范围内某一品种的最低值
如何在SOLR中查询上述内容我确实读过函数查询和solr插件,但找不到很多有用的信息…
我们可以使用一些数学运算,如平均,求和等,对字段(金额,股票价值等)进行切面吗?
我想使用速度UI以下搜索和什么定制它的搜索框将是必需的?任何想法?
Solr是一个高性能文本搜索引擎,基于Lucene,一个优秀的标记匹配和评分库。也就是说,您想要运行的查询类型肯定会以这样或那样的方式在Solr中工作,但是您必须向Solr提供您想要搜索的所有数据。Solr不会为你计算最小,最大平均值。它的工作是在先前计算的值中尽可能快地查找,排序和排序。
您列出的字段可能无法提供您想要的所有详细信息。您将需要索引更多内容。
如果你有你在索引中寻找的数据,下面的查询可能会得到你正在寻找的答案,或者应该给你一个如何陈述它们的提示。
十大股票/仓位
q=*:* sort=stock_value DESC rows=10
这要求stock_value
是数字,并且具有指数中最新的股票价格。
排名前五的客户
这非常相似。
q=*:* sort=account_value DESC rows=5
哪只股票单日涨幅最大
你需要索引每天的增益
q=date:1995-12-31T23:59:59.999Z sort=stock_gain DESC rows=1
股票在特定时间范围内的最低值
q=symbol:abc123 date:[1995-12-31T23:59:59.999Z TO 2007-03-06T00:00:00Z] sort=stock_value ASC rows=1
关于日期查询的详细信息请参见Solr查询语法
我们已经在一个应用程序中实现了同样的事情。
浏览。Vm在导航器"div"下,我们已经创建了我们的自定义facet,当我们单击该facet时,它会重新创建url以及"phisch"在他的答案中提到的参数。
例子:我们在UI的facet部分创建了一个名为"Top 10 Stocks"的链接,当我们点击它时。我们创建了一个url,添加参数为
= : ,那种= stock_value DESC&行= 10
请在你那端试一下,因为它在我那端工作得很好。对不起,我不能分享代码,因为这是客户的机密。