说我有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");
加载需要一分多钟,因为有10,000多个具有computer
标题的solr产品。
solr数据中存在很多其他字段,这些字段在我创建的solrdocument POJO类中不存在,所以我猜测字段的映射需要一些时间。它是否正确?或者只是在通话期间加载大量数据?有什么方法可以加快速度吗?
答案 0 :(得分:0)
如果我正确理解,您在solr文档中存储了许多字段,但是只有一小部分被映射到java文档? 如果为s,则可以限制从solr返回的文件名:
query.addProjectionOnField("myfield1");
....
query.addProjectionOnField("myfieldn");
这应该保存从服务器传输的数据,不确定是否可以加快映射速度。