多个术语的Solr总术语频率

时间:2014-08-13 07:59:46

标签: solr

我正在使用以下查询来获取“apple”字词出现在“text”字段中的总次数:

/solr/collection1/select/?q=text:apple&fl=totaltermfreq(text,apple)&rows=0&omitHeader=true

<response>
    <result name="response" numFound="152322" start="0"/>
</response>

query time: 12 milliseconds

我有十几个这样的问题(例如“橙色”,“梨形”,“香蕉”等)。每个查询运行速度非常快(~10-20毫秒),但我必须单独发送它们。我想立刻发送给他们。

我尝试过将Solr Terms Component与正则表达式一起使用,但只需一个学期就需要一分钟:

/solr/terms?terms.fl=text&terms.regex=apple&omitHeader=true

<response>
    <lst name="terms">
        <lst name="text">
            <int name="apple">152322</int>
        </lst>
    </lst>
</response>

query time: 69866 milliseconds

如果我可以将多个术语传递给总词频函数查询,那就太好了。想法?

1 个答案:

答案 0 :(得分:2)

使用*:*查询所有文档,并为要提取的术语总数的每个术语的字段列表添加一个函数查询:

?q=*:*&fl=ttf(text,apple),ttf(text,banana),ttf(text,pear)&rows=1