我已经运行Lucene / Solr 4来测试不同的功能,也是“群集”。 目前,有100万份文件被编入索引。每个文档都包含以下字段:
ID (unique Key) Example1: 10245
Example2: 24974
TOPIC (Keywords of the document) Example1: "disaster/japan/nuclear power station"
Example2: "world/japan/nuclear power"
HEADLINE (1 line of text): Example1: "explosion at nuclear power plant in japan"
Example2: "news about japans nuclear power plant"
TEXT (the full text): "In the Japanese nuclear power plant in Fukushima..."
所有字段都被编入索引并存储,exapt TEXT,它只被编入索引,而不是存储。 我使用以下特定配置:
<str name="carrot.title">TOPIC</str>
<str name="carrot.snippet">HEADLINE</str>
如果你看一下你看到的例子,TOPIC是不同的,但是日本是一样的。是否可以以这种方式配置solr / carrot,example1和example2将在一个集群中?因为匹配“日本”?!
此外可能有第三个主题,如“新闻/核电”,内部没有“日本”,但HEADLINE和TEXT正在使用:日本电厂。什么solr / carrot配置与在一个集群中接收这3条新闻相关?
谢谢!
答案 0 :(得分:4)
Carrot2旨在聚类自然/非结构化文本,这种算法很少会产生人类认为完美的结果。不幸的是,这样的算法也难以“调试” - 它们产生的集群取决于许多因素,例如文档中出现单词的频率。在您的具体示例中,可能没有选择日语这个词来形成一个群集,因为它过于频繁 - 它出现在您引用的所有文档中。
以下是您可能想要尝试调整群集的一些提示:
尝试使用句点分隔关键字,后跟空格而不是斜杠,例如“灾难。日本。核电站”。如果你这样做,Carrot2会将单词序列(例如“核电站”)视为短语而不是单个单词。
尝试不同的Carrot2聚类算法,例如STC。
如果有机会存储您的全文文本字段(或者可能是其中的一部分,例如第一段),请使用HEADLINE for carrot.title和carrot.snippet的全文/摘录
使用Carrot2算法的特定设置进行播放。最好的工具是Carrot2 Clustering Workbench。以下是将其连接到Solr的方法:http://wiki.apache.org/solr/ClusteringComponent#Tuning_Carrot2_clustering