我正在抓取几个网站并重新展示他们的产品,每个网站在Elasticsearch中都有自己的索引。有些网站有联盟计划,我想在搜索结果中首先列出这些计划。
我有办法提升"提升"某个指数的结果?
当我在抓取时,我应该在ES中写一个字段hasAffiliate: true
,然后在具有该值的情况下boosting the query clauses写一个字段$(document).ready(function{
function loadPaging_content(offset_data){
var offset;//default value page button
if(offset_data){
offset = offset_data;
}else{
offset = 0;
}
var items = 10;//example
$('your LoadPage selector(In this div load Page)').xhrPagination({
sel: 'selector',//In this div created paging Links
totalCount: 'selector OR Number',
items: items
},
{
url:'//your URL',
dataLP:{offset: offset, items:items}
}
);
}
});
吗?或者有更好的方法吗?
答案 0 :(得分:0)
使用boost
可能很难保证它们首先出现在搜索中。根据官方指南:
实际上,没有简单的公式来决定“正确” 提升特定查询子句的值。这是一个问题 尝试它和观望。请记住,提升只是其中一个因素 参与相关性分数
https://www.elastic.co/guide/en/elasticsearch/guide/current/query-time-boosting.html
这取决于您正在进行的查询类型,但此处您还有其他几种选择:
带有权重的score function可能是更可预测的选项。
只需使用hasAffiliate
byte
(最简单的一个)。
注意:不确定是否可以按布尔字段排序,在这种情况下,您可以将hasAffiliate映射设置为整数1
(最小的一个),当为真时将其设置为text
。