0

我有一个索引数据(使用 rdbms 中的 solrj 索引),其中包含与银行相关的字段,例如(示例):customerid、cust_name、accountno、amount、position、pos_value、EOD_value 等

现在我想对数据和搜索查询进行一些搜索:

  • 前10名股票/仓位(根据股票价值)
  • 银行存款金额降序排列的前5名客户
  • 哪只股票一天内涨幅最大(以及股票详情)
  • 特定时间范围内股票的最低值

如何在 SOLR 中查询上述内容我确实阅读了 Function Query 和 solr Plugins 但找不到太多有用的信息......

我们可以使用一些数学运算(如平均值、总和等)对字段(金额、股票价值等)进行分面吗?

我想使用速度 UI 进行以下搜索,需要对其搜索框进行哪些自定义?任何想法???

4

2 回答 2

3

Solr是一个高性能的文本搜索引擎,基于Lucene,一个优秀的token匹配和评分库。这就是说,您想要运行的那种查询肯定会以一种或另一种方式与 Solr 一起工作,但您必须向 Solr 提供您想要搜索的所有数据。Solr 不会为您计算最小、最大平均值。它的工作是在先前计算的值中尽可能快地查找、排名和排序。

您列出的字段可能无法为您提供所需的所有详细信息。您将需要索引更多。

如果您的索引中有您正在寻找的数据,那么以下查询可能会得到您正在寻找的答案,或者应该为您提供有关如何陈述它们的提示。

前 10 名股票/仓位

q=*:* sort=stock_value DESC rows=10

这要求它stock_value是数字并且具有指数中的最新股票价格。

前 5 名客户

这很相似。

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 查询语法

于 2013-04-01T08:21:21.570 回答
0

我们在我们的一个应用程序中实现了同样的事情。

在导航器“div”下的 Browse.vm 中,我们创建了自定义方面,当我们单击该方面时,它会重新创建 url 以及“phisch”在他的回答中提到的参数。

示例: 我们在 UI 的方面部分创建了一个名为“Top 10 Stocks”的链接,当我们单击它时。我们创建了一个 url 添加参数为

q= : &sort=stock_value DESC&rows=10

请在您的最后尝试一下,因为它在我的最后工作正常。抱歉,我不能分享代码,因为它是客户机密。

于 2013-04-04T09:30:08.200 回答