2017-04-13 3 views
0

Ich bin Daten Elasticsearch zu springen, möchte ich Abfrage diesem Rest impl@Query Spiel _all Funktion

GET _search 
{"query": { 

"match": { 
    "_all": "...myquerystring..." 
} 
} 
} 

@Query Anmerkung schreiben wie folgt aus:

@Query("{\"match\":{\"_all\":\"?0\"}}") 

dann donn't Ich weiß,

@Query("{\"bool\" : {\"must\" : {\"term\" : {\"message\" : \"?0\"}}}}") 
    Page<Book> findByMessage(String message, Pageable pageable); 
: wie Abfragefunktion

zB schreiben

0, wie ich Abfrage finden Schreibfunktion für _all

Antwort

0

Genau wie diese versuchen, ist @query Anmerkung nicht obligatorisch: -

Mit Query: -

@Query("{\"bool\" : {\"must\" : [ {\"match\" : {\"?0\" : \"?1\"}} ]}}") 
Page<MyDoc> getbyAll(String a, String b, Pageable pageable); 

int aPageReuestcount = (int) myRepositiry.count(); 
Page<MyDoc> aData = myRepositiry.getbyAll("_all", "HelloWorld", new PageRequest(0, aPageReuestcount)); 
List<MyDoc> aDataList = aData.getContent(); 

Ohne Abfrage :

@Override 
    public List<MyDoc> getDatawithAllFields(String a) { 
     NativeSearchQueryBuilder aNativeSearchQueryBuilder = new NativeSearchQueryBuilder(); 
     aNativeSearchQueryBuilder.withIndices(indexName).withTypes(type); 
     final BoolQueryBuilder aQuery = new BoolQueryBuilder(); 

     aQuery.must(QueryBuilders.matchQuery("_all", a)); 


     NativeSearchQuery nativeSearchQuery = aNativeSearchQueryBuilder.withQuery(aQuery).build(); 
     List<MyDoc> aData = elasticsearchTemplate.queryForList(nativeSearchQuery, MyDoc.class); 
     return aData; 

    } 

Importe: -

import org.elasticsearch.index.query.BoolQueryBuilder; 
import org.elasticsearch.index.query.QueryBuilders; 

dieses link folgen.

+0

Ich fürchte, Sie verstehen mich nicht, ich will _search impl GET { "Abfrage": { "match": { "_all": "... myquerystring ..." } } } Wie schreibe ich Repository-Funktion, darf @Query nicht verwenden, _all wie man – sholey

+0

ausdrückt, wollen Sie alle Daten mit allen Feldern durchsuchen, als gehen Sie mit myRepository.findAll(). findAll() ist die Standardmethode ElasticsearchRepository. –

+0

nicht genau, ich meine GET _search { "Abfrage": { "match": { "_all": "... myquerystring ..." } } } Ich Query-String specifiy kann ... myquerystring ... myRepository.findAll (Querystring) kann nicht funktionieren. Ich möchte alle Daten suchen erfüllt angegebene Abfrage mit allen Feld – sholey