2012-11-01 38 views
-1

我正嘗試使用solr v2.2創建標籤雲。我已經讀夠了,但在網上找不到新手的例子。我想要做的是;如何使用termVectorComponent創建solr中的標籤雲

我有一個字段;

<field name="content" stored="true" indexed="true" multiValued="true" termVectors="true"/> 

我想要得到單詞的tf和idf值。

我到目前爲止所做的是;

當我輸入下面的查詢

本地主機/ Solr的/ tvrh/Q =的queryString &版= 2.2 &縮進=上& tv.tf_idf =真

我得到一個基於文件的效果一樣?;

<lst name="doc-40797"> 
<str name="uniqueKey">test20508</str> 
<lst name="content"> 
<lst name="98"> 
<double name="tf-idf">0.002304147465437788</double> 
</lst> 
<lst name="apaan"> 
<double name="tf-idf">0.16666666666666666</double> 
</lst> 
<lst name="aryadea"> 
< double name="tf-idf">1.0</double> 
</lst> 
<lst name="chelsea"> 
<double name="tf-idf">0.005208333333333333</double> 
</lst> 
<lst name="gua"> 
<double name="tf-idf">0.05555555555555555</double> 
</lst> 
<lst name="osa"> 
<double name="tf-idf">0.004662004662004662</double> 
</lst> 
<lst name="pegangı"> 
<double name="tf-idf">0.5</double> 
</lst> 
<lst name="rt"> 
<double name="tf-idf">1.4009526478005044E-4</double> 
</lst> 
<lst name="vs"> 
<double name="tf-idf">0.0030581039755351682</double> 
</lst> 
</lst> 
</lst> 
<str name="uniqueKeyFieldName">id</str> 
<lst name="doc-40746"> 
<str name="uniqueKey">test20457</str> 
<lst name="content"> 
<lst name="075"> 
<double name="tf-idf">0.027777777777777776</double> 
</lst> 
<lst name="9"> 
<double name="tf-idf">9.76657876745776E-5</double> 
</lst> 
<lst name="atlético"> 
<double name="tf-idf">0.045454545454545456</double> 
</lst> 
<lst name="co"> 
<double name="tf-idf">1.1130899376669635E-4</double> 
</lst> 
<lst name="http"> 
<double name="tf-idf">1.034233116144379E-4</double> 
</lst> 
<lst name="jorna"> 
<double name="tf-idf">0.25</double> 
</lst> 
<lst name="lh"> 
<double name="tf-idf">0.07142857142857142</double> 
</lst> 
<lst name="ngn"> 
<double name="tf-idf">0.5</double> 
</lst> 
<lst name="osa"> 
<double name="tf-idf">0.004662004662004662</double> 
</lst> 
<lst name="puntuaciones"> 
<double name="tf-idf">1.0</double> 
</lst> 
<lst name="t"> 
<double name="tf-idf">7.038783698176955E-5</double> 
</lst> 
<lst name="vavelco"> 
<double name="tf-idf">0.2</double> 
</lst> 
<lst name="vía"> 
<double name="tf-idf">0.03125</double> 
</lst> 
</lst> 
</lst> 
<str name="uniqueKeyFieldName">id</str> 

如何獲得全部結果,而不是基於文檔?或者是否有更好的方法來獲得tf和idf值與termVectorComponent查詢solr分開?

在此先感謝!

+0

我認爲這是一個非常重要的問題,因爲我從來沒有在網絡上看到任何關於它的例子。它應該被投票決定,以便更多的人可以有機會從中做出貢獻並從中受益。 – yns

回答

0

爲了獲得所有文件;

NamedList<Object> solrResponse = server.request(new QueryRequest(queryString)); 
NamedList<Object> namedList = (NamedList<Object>) solrResponse.get("termVectors"); 
for (int i = 0; i < namedList.size(); i +=2) { 
        Object val = namedList.getVal(i); 
        System.out.println(val.toString());//I chose to print them. 
}