Updated documentation for searchQuery Interface based and searchQueryBuilder support

This commit is contained in:
Mohsin Husen 2013-04-22 10:24:28 +01:00
parent 21c88cab4c
commit cf5804aebf
2 changed files with 42 additions and 40 deletions

View File

@ -132,8 +132,9 @@ Searching entities using Elasticsearch Template
@Autowired @Autowired
private ElasticsearchTemplate elasticsearchTemplate; private ElasticsearchTemplate elasticsearchTemplate;
SearchQuery searchQuery = new SearchQuery(); SearchQuery searchQuery = new NativeSearchQueryBuilder()
searchQuery.setElasticsearchQuery(fieldQuery("id", documentId)); .withQuery(fieldQuery("id", documentId))
.build();
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery,SampleEntity.class); Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery,SampleEntity.class);
``` ```

View File

@ -23,9 +23,10 @@
<example> <example>
<programlisting language="java"> <programlisting language="java">
private ElasticsearchTemplate elasticsearchTemplate; private ElasticsearchTemplate elasticsearchTemplate;
SearchQuery searchQuery = new SearchQuery(); SearchQuery searchQuery = new NativeSearchQueryBuilder()
searchQuery.setElasticsearchQuery(matchAllQuery()); .withQuery(matchAllQuery())
searchQuery.setElasticsearchFilter(boolFilter().must(termFilter("id", documentId))); .withFilter(boolFilter().must(termFilter("id", documentId)))
.build();
Page&lt;SampleEntity&gt; sampleEntities = elasticsearchTemplate.queryForPage(searchQuery,SampleEntity.class); Page&lt;SampleEntity&gt; sampleEntities = elasticsearchTemplate.queryForPage(searchQuery,SampleEntity.class);
</programlisting> </programlisting>
</example> </example>
@ -42,20 +43,21 @@ Page&lt;SampleEntity&gt; sampleEntities = elasticsearchTemplate.queryForPage(sea
Using Scan and Scroll Using Scan and Scroll
</title> </title>
<programlisting language="java"> <programlisting language="java">
SearchQuery searchQuery = new SearchQuery(); SearchQuery searchQuery = new NativeSearchQueryBuilder()
searchQuery.addIndices("test-index"); .withQuery(matchAllQuery())
searchQuery.addTypes("test-type"); .withIndices("test-index")
searchQuery.setElasticsearchQuery(matchAllQuery()); .withTypes("test-type")
searchQuery.setPageable(new PageRequest(0,1)); .withPageable(new PageRequest(0,1))
String scrollId = elasticsearchTemplate.scan(searchQuery,1000,false); .build();
List&lt;SampleEntity&gt; sampleEntities = new ArrayList&lt;SampleEntity&gt;(); String scrollId = elasticsearchTemplate.scan(searchQuery,1000,false);
boolean hasRecords = true; List&lt;SampleEntity&gt; sampleEntities = new ArrayList&lt;SampleEntity&gt;();
while (hasRecords){ boolean hasRecords = true;
Page&lt;SampleEntity&gt; page = elasticsearchTemplate.scroll(scrollId, 5000L , new ResultsMapper&lt;SampleEntity&gt;() { while (hasRecords){
@Override Page&lt;SampleEntity&gt; page = elasticsearchTemplate.scroll(scrollId, 5000L , new ResultsMapper&lt;SampleEntity&gt;() {
public Page&lt;SampleEntity&gt; mapResults(SearchResponse response) { @Override
List&lt;SampleEntity&gt; chunk = new ArrayList&lt;SampleEntity&gt;(); public Page&lt;SampleEntity&gt; mapResults(SearchResponse response) {
for(SearchHit searchHit : response.getHits()){ List&lt;SampleEntity&gt; chunk = new ArrayList&lt;SampleEntity&gt;();
for(SearchHit searchHit : response.getHits()){
if(response.getHits().getHits().length &lt;= 0) { if(response.getHits().getHits().length &lt;= 0) {
return null; return null;
} }
@ -65,8 +67,7 @@ Page&lt;SampleEntity&gt; sampleEntities = elasticsearchTemplate.queryForPage(sea
chunk.add(user); chunk.add(user);
} }
return new PageImpl&lt;SampleEntity&gt;(chunk); return new PageImpl&lt;SampleEntity&gt;(chunk);
} }
}); });
if(page != null) { if(page != null) {
sampleEntities.addAll(page.getContent()); sampleEntities.addAll(page.getContent());
@ -76,7 +77,7 @@ Page&lt;SampleEntity&gt; sampleEntities = elasticsearchTemplate.queryForPage(sea
hasRecords = false; hasRecords = false;
} }
} }
}</programlisting> }</programlisting>
</example> </example>
</section> </section>
</chapter> </chapter>