我正在根据内容名称,大小等多个过滤器来查询solr,但这些过滤器中的一个是相关的。我正在使用SolrQuery API向solr添加过滤器。
SolrQuery query = new SolrQuery();
query.set("q", mQueryString);
query.addFilterQuery(Name);
但我无法找到相关的价值。
如何根据内容相关性进行搜索。任何人都可以帮忙吗?
答案 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);