List of usage examples for org.springframework.data.elasticsearch.core.query ScriptField ScriptField
public ScriptField(String fieldName, Script script)
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test @Ignore("Missing fields implementation in Jest") public void shouldUseScriptedFields() { // given// w w w . j a v a 2s .c o m String documentId = randomNumeric(5); SampleEntity sampleEntity = new SampleEntity(); sampleEntity.setId(documentId); sampleEntity.setRate(2); sampleEntity.setMessage("some message"); sampleEntity.setVersion(System.currentTimeMillis()); IndexQuery indexQuery = new IndexQuery(); indexQuery.setId(documentId); indexQuery.setObject(sampleEntity); elasticsearchTemplate.index(indexQuery); elasticsearchTemplate.refresh(SampleEntity.class); Map<String, Object> params = new HashMap<>(); params.put("factor", 2); // when SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()) .withScriptField(new ScriptField("scriptedRate", new Script("doc['rate'].value * factor", ScriptService.ScriptType.INLINE, null, params))) .build(); Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class); // then assertThat(sampleEntities.getTotalElements(), equalTo(1L)); assertThat(sampleEntities.getContent().get(0).getScriptedRate(), equalTo(4L)); }