Почему отображение для весенних данных solr медленное? - PullRequest
0 голосов
/ 01 мая 2018

Скажите, у меня есть следующий класс для solrdocument

@SolrDocument(solrCoreName="some_core")
public class SolrProduct {
    @Id
    @Indexed(name="id")
    private String id;

    @Indexed(name="title_str")
    private String title;

    ....

и на уровне доступа к данным код просто

public interface ProductRepository extends SolrCrudRepository <SolrProduct, Long> {

    public Page<SolrProduct> findByTitle(String title, Pageable page);

    public List<SolrProduct> findByTitle(String title);

}

На уровне обслуживания, когда я звоню

productService.findByTitle("computer", new PageRequest(0, 10));

Это нормально, потому что я получаю только 10 результатов назад. Однако, если я позвоню

productService.findByTitle("computer");

Загрузка занимает больше минуты, поскольку существует более 10000 продуктов solr с заголовком computer.

Существует много других полей, которые существуют из данных solr, которых нет в созданном мной классе POJO solrdocument, поэтому я предполагаю, что отображение полей занимает некоторое время. Это правильно? или это просто вызвано загрузкой большого количества данных во время звонка? Можно ли как-нибудь ускорить это?

1 Ответ

0 голосов
/ 03 октября 2018

Если я правильно понимаю, у вас есть много полей, хранящихся в документе solr, но только небольшое подмножество сопоставлено с документом java? Если s, вы можете ограничить поля, которые возвращаются из solr:

query.addProjectionOnField("myfield1");
....
query.addProjectionOnField("myfieldn");

Документация

Это должно сохранить данные, передаваемые с сервера, не будучи уверенным в ускорении отображения.

...