2016-11-23 4 views
0
  1. Используя остальные-клиентов/_search размера = 100 & от = 500, способного принести результатыУпругий Поиск: Последовательная навигация Страницы с использованием результатов пружинно-данными-elasticsearch пустыми после определенного предела

    же оленья кожа работа с шагом ниже, используя код

  2. Использование пружинный данных-elasticsearch со следующими ниже фрагменты кода Об использовании размера = 100, из = 500, результаты являются пустыми

    Примечание: принесло результаты успешно только один раз, то есть после того, как указательных порождений

    NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder(); 
    
    nativeSearchQueryBuilder.withIndices("indexName"); 
    nativeSearchQueryBuilder.withTypes("someType"); 
    nativeSearchQueryBuilder.withPageable(new PageRequest(500, 100)); 
    SearchQuery searchQuery = nativeSearchQueryBuilder.build(); 
    elasticsearchTemplate.queryForList(searchQuery, 
          className); 
    

    нам нужно добавить любой дополнительный шаг к выше фрагментам, чтобы получить желаемые результаты Do?

ответ

1

PageRequest constructor не принимает from и size в качестве аргументов, но и pagesize, который отличается, потому что page и from не то же самое.

Если вы хотите, чтобы ваши страницы содержат 100 элементов, то вместо from=500 вам нужно использовать page=5

nativeSearchQueryBuilder.withPageable(new PageRequest(5, 100)); 
+0

Спасибо поняли, его правильно, поэтому эластичный поиск апите оленью кожу имеет такую ​​поддержку, так же поддерживаются с restclient? –

+0

Это то же самое, что реализовано иначе, просто размер страницы + вместо +. «PageRequest» происходит от Spring Data Core и представляет собой абстракцию, подходящую для любого типа базового хранилища данных (ES, JPA, MongoDB Cassandra и т. Д.). Под капотом 'PageRequest' использует и/размер, когда используется против Elasticsearch. – Val

+0

Спасибо @Val за подробное объяснение –