如何提升记录取决于Solr中的任何字段。
参考链接:https://wiki.apache.org/solr/SolrRelevancyFAQ#How_can_I_increase_the_score_for_specific_documents
但我的情况并非如此。
我在搜索后有一些记录
如何获得Id:5,8,17和1上升一些不是列表的顶部,只是提高一步。因为它的价格更高。
这是我的行查询;
select?mm=100%25&version=2.2&q=(book)&defType=edismax&spellcheck.q=(book)&qf=Price^10+Name^1+nGramContent&spellcheck=true&stats=true&facet.mincount=1&facet=true&spellcheck.collate=true&stats.field=Price&rows=50&indent=on&wt=json&fl=Id,score,Price
请帮帮我。
谢谢!
答案 0 :(得分:0)
qf
参数用于字段中的 hits ,除非查询在字段中产生匹配,否则不会影响排名。您的示例将要求您搜索book
参数可以提升的任何内容的价格(而不是qf=Price^10
)。
您链接的常见问题解答回答了您的问题,而不是您引用的问题:How can I change the score of a document based on the value of a field。从示例中(用您的案例替换普及价格):
# simple boosts by popularity
defType=dismax&qf=text&q=supervillians&bf=popularity
q={!boost b=popularity}text:supervillians
# boosts based on complex functions of the popularity field
defType=dismax&qf=text&q=supervillians&bf=sqrt(popularity)
q={!boost b=sqrt(popularity)}text:supervillians
edismax也使{!boost}(乘法提升)可用作boost=
参数,因此您可以直接引用它,而不是在查询中使用它。