我在以下示例中使用SOLR 4.x termfreq功能在字段CONTENTS中查找“autozero amplifier”。
对于包含短语“autozero amplifier”的以下段落,我的频率为零。
我需要对solrconfig.xml或schema.xml做什么才能在短语中使用termfreq,而不只是一个单词“放大器”?
答案 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)
您可以尝试以下技巧
termfreq(),并使用sum()来计算它的计数。
此外,您可以使用if()来检查您的值。
希望,这听起来不错。