如何使用spring-data-solr编写查询,返回特定字段的所有值的列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用spring-data-solr编写查询,返回特定字段的所有值的列表相关的知识,希望对你有一定的参考价值。

我想写一个查询,获取文档中一个字段的所有值的列表(根本没有条件)。我尝试以下代码:

@Query(fields = { "car_company_s" })
List<Car> findAllCarCompeny();

但它没有用,我得到以下错误:

Caused by: org.springframework.data.mapping.PropertyReferenceException: No property findAllCarCompeny found for type Car!

有没有办法做到这一点?

答案

你想要的是一个"Term"。基本上它返回字段的所有值。你需要solr模板,如description所述。我们使用的示例:

    @Resource
    private SolrTemplate solrTemplate;
    ...     
    query = SimpleTermsQuery.queryBuilder()
                .fields(key)
                .prefix(startsWith.toLowerCase(Locale.ROOT)) // we have some search prefix
                .sort(TermsOptions.Sort.INDEX)
                .build();

    TermsPage page = solrTemplate.queryForTermsPage(query);
    Iterable<TermsFieldEntry> terms = page.getTermsForField(key);

条款基本上是您的价值观。请注意,您必须优化核心以删除已从已删除文档中删除的值。

以上是关于如何使用spring-data-solr编写查询,返回特定字段的所有值的列表的主要内容,如果未能解决你的问题,请参考以下文章

easyui Datagrid查询报错Uncaught TypeError:Cannot read property 'length' of undefined

Mac androidStudio cannot resolve corresponding JNI function

如何使用sql编写查询语句 用于查询学生的 各科成绩

ES 查询时报错 I/O 异常: Request cannot be executed; I/O reactor status: STOPPED

在 Laravel 中,如何在 Route::middleware 组中使用“cannot”?

如何使用内连接编写更新查询