如何根据solr中的相关性进行搜索?

时间:2014-06-24 11:40:23

标签: solr

我正在根据内容名称,大小等多个过滤器来查询solr,但这些过滤器中的一个是相关的。我正在使用SolrQuery API向solr添加过滤器。

SolrQuery query = new SolrQuery();
query.set("q", mQueryString);
query.addFilterQuery(Name);

但我无法找到相关的价值。

如何根据内容相关性进行搜索。任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

搜索结果的相关性是在搜索过程中计算的,它取决于两个方面:查询和搜索结果的内容。 计算相关性的确切公式称为TF-IDF,在此详细解释http://www.tfidf.com/

如果您愿意,您可以使Solr(标题,主题)中的不同字段得分高于页面内容,从而使查询匹配更具相关性。这称为场增强,在此解释:https://wiki.apache.org/solr/SolrRelevancyFAQ#How_can_I_make_.22superman.22_in_the_title_field_score_higher_than_in_the_subject_field

答案 1 :(得分:0)

我能够使用SolrQuery基于相关性得分进行搜索。为了根据solr默认相关性顺序对结果进行排序,我通过了'得分' solr查询的参数并且有效。

SolrQuery solrQuery = new SolrQuery();    
solrQuery.setParam("q", keywords);
solrQuery.setParam("q.op", "AND");
solrQuery.setParam("df", "text");
solrQuery.setParam("qt", "/select");
SolrQuery.SortClause  sortClause = new SortClause("score", ORDER.desc);
solrQuery.addSort(sortClause);