首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在FOSElasticaBundle中使用indices_boost?

如何在FOSElasticaBundle中使用indices_boost?
EN

Stack Overflow用户
提问于 2019-06-01 20:22:37
回答 1查看 59关注 0票数 0

我有这个查询,它得到了我需要的东西,它只是一个例子,但它会做到这一点。

代码语言:javascript
复制
{
    "indices_boost": { 
        "customer": 3,
        "customer_contact": 2
    },
    "query": {
        "term" : { "all" : "google" } 
    }
}

问题是我想在FOSElasticaBundle中使用它,我甚至不知道这是否可能。我知道这不是100%相同的查询,但我只需要在某个地方添加"indices_boost“。由于我必须使用2个索引,所以查询比通常要复杂一些。

代码语言:javascript
复制
$queryObject = new \Elastica\Query\BoolQuery();
$tagsQuery = new \Elastica\Query\Terms();
$tagsQuery->setTerms('all', ['google']);
$queryObject->addShould($tagsQuery);

$repositoryManager = $this->get('fos_elastica.index_manager');
$search = $repositoryManager->getIndex('customer')->createSearch($queryObject, 20);
$search->addIndex('customer_contact');
$search->search($queryObject, 20)->getResults();
EN

回答 1

Stack Overflow用户

发布于 2019-06-02 19:26:06

我终于让它工作了。

我猜FOSelasticBundle还没有准备好使用这个选项,但是有一种方法可以将自定义参数添加到查询中。

代码语言:javascript
复制
$query = new \Elastica\Query($queryObject);
$indicesBoost = [
    "customer" => 3,
    "customer_contact" => 2
];
$query->setParam("indices_boost", $indicesBoost);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56406702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档