0

我正在研究当前情况下,如果存在特定的文本搜索,需要增强少量文档。 这种情况是,我有一组文档,我必须根据特定的关键字执行查询这个术语,但这里的问题是。假设我们搜索关键字测试,它将获取100条记录,但是要求说少数文档应该始终作为最高结果,而不考虑权重和其他标准。我们如何才能做到这一点是Elasticsearch,任何建议和想法都是最受欢迎的。我们如何在Elasticsearch中手动操纵分数字段

+0

如果你知道哪些文件来提振在索引时间,您可以使用一个字段来标记它们,然后在搜索查询中包含该字段。另一种方法是,如果在搜索时有一些标识符,则将其包含在查询中。 – Henrik

+0

你能举一个简单的例子,说明你有什么样的结果,你期待什么结果? – jay

+0

@jay让我们说,当我们用“test”关键字进行术语查询时,它返回1000 doc。假设我们有4个文档,其ID分别是1,2,3,4。所以我想要的是每次我使用测试关键字进行术语查询时,这4个文档应该以顶级结果出现在前4个内容中。希望我清除了你的查询。 –

回答

1

您可以控制与脚本的相关性。看一看: https://www.elastic.co/guide/en/elasticsearch/guide/current/script-score.html

这是一个使用Groovy的一个例子:

price = doc['price'].value 
margin = doc['margin'].value 

if (price < threshold) { 
    return price * margin/target 
} 
return price * (1 - discount) * margin/target 

所以,在伪代码将是这样的:

if (word == 'test') { 
    return score * n 
} 
return score