2015-11-01 2 views
0

Возможно ли использовать сортировку и заказать поле в алфавитном порядке, а затем использовать сценарий для подкрепления определенных документов с использованием одного и того же поля. Все остальные документы должны быть сохранены?Elasticearch boost and order по алфавиту

ответ

0

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

{ 
    "sort": [ 
    { 
     "_script": { 
     "type": "number", 
     "script": "doc['age'].value ", 
     "params": { 
      "factor": 1.1 
     }, 
     "order": "asc" 
     } 
    }, 
    { 
     "name": { 
     "order": "asc" 
     } 
    } 
    ] 
} 

Как мы дали сумму, сумма значения поля и сценария принимается за оценку.

+0

Я получаю следующее исключение: lassCastException [org.elasticsearch.index.fielddata.plain.PagedBytesIndexFieldData нельзя отнести к org.elasticsearch.index.fielddata.IndexNumericFieldData]; }] мое поле является строковым полем, поэтому я не уверен, как он может вернуть целое число. –

+0

Кажется, field_value_factor может работать только на число, я изменил свой ответ, чтобы использовать сортировку. –