使用solr的函数查询,并获取tf*idf值

1. 使用函数df(field,keyword) 和idf(field,keyword).

http://118.85.207.11:11100/solr/mobile/select?q={!func}product%28idf%28title,%E9%97%AE%E9%A2%98%29,tf%28title,%E9%97%AE%E9%A2%98%29%29&fl=title,score,product%28idf%28title,%E9%97%AE%E9%A2%98%29,tf%28title,%E9%97%AE%E9%A2%98%29%29&wt=json

其中tf*idf的值和score的值是相同的.

也可以在solrj中实现:

public class AppTest 
{    
    @Test
    public void test1() throws SolrServerException{
        HttpSolrServer solrServer = new HttpSolrServer("http://118.85.207.11:11100/solr/mobile");
        String keyword = "问题";
        SolrQuery solrQuery  = new SolrQuery("q={!func}product(idf(title,$keyword),tf(title,$keyword)keyword="+keyword+")");
        solrQuery.addField("title,score");
        solrQuery.setRows(1);
        QueryResponse queryResponse = solrServer.query(solrQuery);
        System.out.println(queryResponse.toString());
    }
}

 

结果:

  {responseHeader={status=0,QTime=16,params={fl=title,score,q=q={!func}product(idf(title,$keyword),tf(title,$keyword)keyword=问题),wt=javabin,version=2,rows=1}},response={numFound=3,start=0,maxScore=0.078723446,docs=[SolrDocument{title=4G热点问题答疑—套餐篇, score=0.078723446}]},highlighting={10001={title=[4G热点<font color='#FF0000'>问题</font>答疑—套餐篇],content=[4G热点<font color='#FF0000'>问题</font>答疑—套餐篇]}}}

posted @ 2015-03-31 18:12  勿妄  阅读(1392)  评论(0编辑  收藏  举报