当搜索“ bool(boolean) ”字段类型为TRUE的正确方法以增强结果时,会遇到很多“静态”问题,大多数结果都在谈论 bool(boolean) 搜索。
N.B.我们正在使用php elastica库,但如果您只能提供很好的json,则可以从中进行管理。
我有一个包含5个字段的索引,其中有一些内置的Boosting正在进行中,您可以在此处看到:
array(
'article_id' => array('type' => 'string', 'include_in_all' => FALSE),
'subject' => array('type' => 'string', 'include_in_all' => TRUE, 'boost' => 8),
'summary' => array('type' => 'string', 'include_in_all' => TRUE, 'boost' => 5),
'content' => array('type' => 'string', 'include_in_all' => TRUE, 'boost' => 3),
'media' => array('type' => 'boolean', 'include_in_all' => FALSE),
'pub_date' => array('type' => 'date', 'include_in_all' => FALSE)
)
我还使用
pub_date
查询对象上的addShould()
方法,通过基于年龄的\Elastica\Query\Bool()
字段成功提高了各个级别的结果。我现在想做的是在
media
为TRUE的情况下进一步提高结果。有人可以告诉我如何为
media
字段添加适当的增强吗? 最佳答案
有多种提高结果的方法,请查看this question以了解更多信息。您的用例似乎很简单,您可以在索引时执行,但我宁愿在查询时执行,只需在bool query中添加should子句,并在需要时对其进行适当的增强:
{
"bool" : {
"must" : {
...
},
"should" : [
{
.....
},
{
"term" : { "media" : "TRUE" }
}
],
}
}
new子句是可选的,但会使匹配文档的分数更高。如有必要,可以为其添加特定的增强,其值主要取决于其他子句。
关于php - 根据 bool 字段值提升Elasticsearch结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17029463/