使用从函数返回的值进行搜索

时间:2016-03-25 01:01:57

标签: solr lucene

如果我有这样的话:

<doc>
  <field name="id">1</field>
  <field name="swaptot">4822536</field>
  <field name="swapavail">3743504</field>
</doc>
<doc>
  <field name="id">2</field>
  <field name="swaptot">15826924</field>
  <field name="swapavail">4881708</field>
</doc>

我可以计算免费掉期百分比。

q=*:*
fl=pctswapfree:ceil(product(div(sub(swaptot,swapavail),swaptot),100))

但是如何搜索pctswapfree:[50 TO *]的文档?

是否可以使用函数返回的值进行搜索查询?

1 个答案:

答案 0 :(得分:1)

您必须添加带有frange的过滤器查询和您的函数查询。 frange将限制在特定范围内。

l =下限 u =上限

fq={!frange l=50}ceil(product(div(sub(swaptot,swapavail),swaptot),100))

查询包括上限:

fq={!frange l=50 u=10000}ceil(product(div(sub(swaptot,swapavail),swaptot),100))