2016-02-15 5 views
2

Я хочу увеличить документы в настройках ONGR. Как показывают here наиболее efficiant способ сделать это так, то при добавлении его к отображению:Как добавить усиление к отображению elasticsearch в ONGR?

"boosting_field": {"type" : "integer", "store" : "yes", "index" : "yes", "boost" : 10.0,} 

Как я могу сделать это в ONGR?

ответ

1

Ускорение полей при индексировании по времени составляет strongly discouraged, потому что после установки вы никогда не сможете изменить усиление своего поля. Кроме того, эту возможность можно даже удалить в будущих версиях.

Таким образом, вы должны обязательно пойти на повышение времени запроса, что является гораздо более гибким способом повышения ваших полей.

0

Вам определенно нужно избегать использования boost в преобразовании индекса. Вместо этого в поиске попытайтесь использовать вес полей. например

{ 
"query": { 
"bool": { 
    "should": [ 
    { 
     "term": { 
     "title": "acme^2" 
     } 
    }, 
    { 
     "term": { 
     "description": "bar^1" 
     } 
    } 
    ] 
    } 
} 
} 
+0

Но как, если я хочу иметь повышение ценности в специальном поле? –

+0

Что вы имеете в виду в специальном поле? – saimaz

+0

Я хочу иметь поле int, которое содержит предварительно рассчитанное значение повышения, которое должно влиять на сортировку (не перезаписывать ее). –

1

Если вы хотите добавить любые пользовательские поля для отображения в данном конкретном случае boost, вы можете сделать это с помощью опций, смотрите пример ниже:

//... 
    /** 
    * @ES\Property(type="string", options={"boost"="10"}) 
    */ 
    public $title; 
//...