Как добавить повышение к отображению elasticsearch в ONGR?

Я хочу увеличить количество документов в моей настройке ONGR. Как показано здесь, наиболее эффективный способ сделать это — добавить его в сопоставление:

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

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


person j.krug    schedule 15.02.2016    source источник


Ответы (3)


Повышение полей во время индексации в сопоставлении настоятельно не рекомендуется потому что однажды установив, вы никогда не сможете изменить усиление своего поля. Более того, эта функция может быть даже удалена в будущих версиях.

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

person Val    schedule 16.02.2016

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

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

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

{
"query": {
"bool": {
  "should": [
    {
      "term": {
        "title": "acme^2"
      }
    },
    {
      "term": {
        "description": "bar^1"
      }
    }
   ]
  }
 }
}
person saimaz    schedule 02.03.2016
comment
Но что, если я хочу, чтобы значение повышения было в специальном поле? - person j.krug; 03.03.2016
comment
Я хочу иметь поле int, содержащее предварительно рассчитанное значение повышения, которое должно влиять на сортировку (а не перезаписывать его). - person j.krug; 07.03.2016
comment
Когда вы определяете параметры использования поля документа: @ES\Property(type=string, options={boost=10}) - person saimaz; 15.03.2016