【发布时间】:2010-12-28 22:59:04
【问题描述】:
假设我有几个使用 Solr 4.0 索引的文档。每个都有 2 个字段 - 唯一 ID 和文本 DATA 字段。 DATA 字段包含几段文本。谁能告诉我应该使用哪种分析器/解析器以及如何构建统计查询以找出所有文档的所有 DATA 字段中最常用单词的排序列表。
【问题讨论】:
假设我有几个使用 Solr 4.0 索引的文档。每个都有 2 个字段 - 唯一 ID 和文本 DATA 字段。 DATA 字段包含几段文本。谁能告诉我应该使用哪种分析器/解析器以及如何构建统计查询以找出所有文档的所有 DATA 字段中最常用单词的排序列表。
【问题讨论】:
对于最常见的术语,请查看 terms- 和 statistical component
【讨论】:
除了这里提到的答案,您还可以使用“HighFreqTerms”类:它在 lucene-misc-4.0 jar(与 Solr 捆绑在一起)中。
这是一个命令行应用程序,可让您按文档频率或总词频(-t 选项)查看任何字段的热门词
这里是用法:
java org.apache.lucene.misc.HighFreqTerms [-t] [number_terms] [field]
-t: include totalTermFreq
这是已提交并在 4.0(主干)和 branch_3x 代码库中的原始补丁:https://issues.apache.org/jira/browse/LUCENE-2393
【讨论】:
对于基于 keyword tokenizer 的 ID 字段使用分析器 - 它将字段的所有内容作为单个标记。
对于 DATA 字段,请使用 language specific analyzer。请注意,有可能auto-detect the language 的文本(patch)。
我不确定,是否可以使用 Solr 找到最常用的单词,但如果您可以使用 Lucene 本身,请注意this 问题。我自己的建议是使用来自Luke 项目的HighFreqTerms 类。
【讨论】: