2017-01-09 4 views
0

Я новичок в elastic4s, я пытаюсь выполнить эту exampleГрани не признал

client execute { 
    search in "places"->"cities" query "london" facets (
    facet terms "landmark" field "type", 
    facet range "age" field "year" range (1000->1200) to(1200) from(1400) 
) 
} 

однако, кажется, что фасеты не распознается IDE. я, возможно, отсутствует импорт или зависимость Я использую

"com.sksamuel.elastic4s" %% "elastic4s-core"      % 2.4.0, 
"com.sksamuel.elastic4s" %% "elastic4s-streams"     % 2.4.0 

ответ

0

Поскольку вы используете ES 2.4.x, вы должны использовать агрегирование вместо граней, которые были удалены в ES 2.0.

Вы можете увидеть пример here. Поэтому в вашем случае вам необходимо изменить свой код на:

client.execute { 
    search in "places"/"cities" query "london" aggregations(
    aggregation terms "landmark" field "type", 
    aggregation range "age" field "year" range (1000, 1200) to(1200) 
) 
} 
+0

Спасибо, BTW, есть ли возможность получить все значения определенного поля? – igx

+0

Да, вы можете добавить 'size 0' в агрегирование терминов, но производительность может пострадать, если мощность этого поля велика. Возможно, начните с 100 и посмотрите, как это происходит. – Val