2017-04-13 53 views
0

我是新來的春天數據elasticsearch,我想這IMPL其餘查詢@Query比賽_all功能

GET _search 
{"query": { 

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

@Query註釋寫這樣的:

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

然後我donn't知道如何編寫查詢功能

如:

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

怎麼我寫找到_all查詢功能

回答

0

剛剛嘗試這樣,@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(); 

沒有查詢: -

@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; 

    } 

進口: -

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

遵循這一link

+0

我怕你不懂我的話,我想IMPL GET _search { 「查詢」:{ 「匹配」:{ 「_all」: 「...... myquerystring ......」 }} }我如何編寫知識庫函數,可能不會使用@Query,_all如何表示 – sholey

+0

我想用全部字段搜索所有數據,而不是使用myRepository.findAll()。 findAll()是默認方法ElasticsearchRepository。 –

+0

不完全是,我的意思是GET _search { 「查詢」:{ 「匹配」:{ 「_all」: 「...... myquerystring ......」 }} } 我,可以指定查詢字符串... myquerystring ... myRepository.findAll(querystring)無法工作。 我想搜索所有數據滿意指定查詢所有字段 – sholey