Solr 多个术语的总术语频率

标签 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

我有十几个这样的查询(例如“orange”、“pear”、“banana”等)。每个查询都运行得非常快(约 10-20 毫秒),但我必须单独发送它们。我想一次性把它们全部寄出。

我已经尝试使用带有正则表达式的 Solr 条款组件,但仅对一个术语就需要一分钟多的时间:
/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

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

最佳答案

使用 *:* 查询所有文档并将函数查询添加到您要提取的每个术语的字段列表中:

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

关于Solr 多个术语的总术语频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25280948/

相关文章:

solr - 如何在 Apache solr 上进行分面组查询

solr - Apache solr 中的索引是什么?

java - 错误启动 jetty 服务 (Solr)

solr - 选择一个领域比另一个领域更好的 solr 文档

solr - 有没有办法在使用 Solr 同义词时更多地提升原始术语?

ruby-on-rails - 使用 Solr 和 sunspot 进行模糊搜索

java - Solr:从分词器填充单独的字段

java - Solr 对存储的数据应用过滤器

unit-testing - 通过嵌入式服务器测试 Solr

indexing - Solr中 "multiValued"字段类型有什么用?