termfreq的短语

时间:2012-01-26 20:14:29

标签: solr

我在以下示例中使用SOLR 4.x termfreq功能在字段CONTENTS中查找“autozero amplifier”。

http://localhost:8080/solr/select/?fl=contents,documentPageId,termfreq%28contents,%27autozero%20amplifiers%27%29&defType=func&q=termfreq%28contents,%27autozero%20amplifiers%27%29&fq=documentId%3A49667

对于包含短语“autozero amplifier”的以下段落,我的频率为零。

我需要对solrconfig.xml或schema.xml做什么才能在短语中使用termfreq,而不只是一个单词“放大器”?

2 个答案:

答案 0 :(得分:2)

除非你让Lucene将“自动调零放大器”视为一个术语,否则你不能使用术语向量来获得你想要的东西。您可以使用KeywordTokenizerFactory进行索引,这实际上不会对单词进行标记,它会将整个文本流保留为一个标记。但是,例如,如果您感兴趣的字段包含以下文本,

 "The quick brown fox jumps over the lazy dog"

如何定义术语边界?

 The quick
 The quick brown
 quick brown
 quick brown fox jumps
 over the lazy dog
 .....

该组合以指数方式成倍增长。由于我一直在回答您关于term vectors导致此问题的一些问题,我的猜测是您试图弯曲Solr/Lucene来计算大型文档中的单词/单词集。您可以考虑将Solr与Hadoop集成,让Hadoop为您完成所有计数。哎呀!每个Hadoop示例都会讨论字数和数量。行计数.. Solr + Hadoop = Big Data Love或者您可以在自己的应用层中执行此操作。

我对您的应用程序数据量,需求目标等没有太多信息。所以这是一个充其量的建议。

答案 1 :(得分:0)

您可以尝试以下技巧

    单独的单词上的
  1. termfreq(),并使用sum()来计算它的计数。

  2. 此外,您可以使用if()来检查您的值。

  3. 希望,这听起来不错。