使用 Hibernate Search 时“过滤查询不支持排序”

青年同胞

我正在尝试发出一个查询,其中包括从 Hibernate Search5.7.1.Final到 ElasticSearch 的排序2.4.2

当我使用 curl 时,我得到了结果:

curl -XPOST 'localhost:9200/com.example.app.model.review/_search?pretty' -d '
{
    "query": { "match" : { "authors.name" : "Puczel" } },
    "sort": { "title": { "order": "asc" } }
}'

但是当我从代码发出查询时:

protected static Session session;

public static void prepareSession()
{
    SessionFactory sessionFactory = new Configuration().configure()
        .buildSessionFactory();
    session = sessionFactory.openSession();
}

...

protected static void testJSONQueryWithSort()
{
    FullTextSession fullTextSession = Search.getFullTextSession(session);
    QueryDescriptor query = ElasticsearchQueries.fromJson(
        "{ 'query': { 'match' : { 'authors.name' : 'Puczel' } }, 'sort': { 'title': { 'order': 'asc' } } }");
    List<?> result = fullTextSession.createFullTextQuery(query, Review.class).list();

    System.out.println("\n\nSearch results for 'author.name:Puczel':");
    for(Object object : result)
    {
        Review review = (Review) object;
        System.out.println(review.toString());
    }

}

我得到一个例外:

"[filtered] query does not support [sort]"

我了解它的来源,因为 Hibernate Search 问题的查询与我的curl查询不同- 指定类型的实现方式不同:

{
    "query":
    {
        "filtered":
        {
            "query":
            {
                "match":{"authors.name":"Puczel"}
            },
            "sort":{"title":{"order":"asc"}},
            "filter":{"type":{"value":"com.example.app.model.Review"}}
        }
    }
}

但我不知道如何改变它。

我尝试使用 Hibernate 文档中的排序示例:https : //docs.jboss.org/hibernate/search/5.7/reference/en-US/html_single/#__a_id_elasticsearch_query_sorting_a_sorting

但是这个例子并不完整。我不知道:

  • 要使用哪些进口(有多个匹配),
  • 未声明变量的类型是什么,例如s
  • 如何初始化变量luceneQuery

我将不胜感激对此的任何评论。

罗迪埃

是的,正如在 javadoc 中提到的org.hibernate.search.elasticsearch.ElasticsearchQueries.fromJson(String)

请注意,仅支持 'query' 属性。

所以你必须使用 Hibernate Search API 来执行排序。


要使用哪些进口(有多个匹配),

Sort 来自 Lucene ( org.apache.lucene),List来自java.util,所有其他导入都应该来自 Hibernate Search ( org.hibernate.search)。

未声明变量的类型是什么,例如 s

s是一个FullTextSession检索通过org.hibernate.search.Search.getFullTextSession(Session)它也适用于FullTextEntityManager检索到的org.hibernate.search.jpa.Search.getFullTextEntityManager(EntityManager).

如何初始化变量 luceneQuery

您必须使用查询构建器 ( qb):

Query luceneQuery = qb.keyword().onField("authors.name").matching("Puczel").createQuery();

如果你打算使用 Hibernate Search API,并且你还不习惯它,我建议你先阅读通用文档(不仅仅是 Elasticsearch 部分,它只提到了 Elasticsearch 的细节):https://docs.jboss .org/hibernate/search/5.7/reference/en-US/html_single/#search-query

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Hibernate Search查询类

来自分类Dev

Hibernate Search查询类

来自分类Dev

使用Hibernate Search查询枚举(枚举)的IndexedEmbedded列表

来自分类Dev

尚不支持Hibernate Pure本机标量查询

来自分类Dev

使用Hibernate Search / Lucene标记云?

来自分类Dev

Hibernate Search:如何正确使用通配符?

来自分类Dev

将 EntityGraph 与 Hibernate Search ORM 结合使用

来自分类Dev

使用AWS DocumentClient少于次要索引查询时-“不支持查询关键条件”

来自分类Dev

尝试使用Jackcess(Java)从Access中读取时出现“不支持的整理排序顺序”

来自分类Dev

使用zip()对元组列表进行排序时,有时不支持'<'

来自分类Dev

使用hibernate-search-4.1.1.Final.jar进行Hibernate全文搜索,但无法解决类似查询生成器的错误

来自分类Dev

如何使用Hibernate Lucene Search进行不区分大小写的排序?

来自分类Dev

如何使用Hibernate Lucene Search对挪威字符(case,Ø和Å)进行不区分大小写的排序?

来自分类Dev

如何使用Hibernate Lucene Search访问实体中外键的排序字段名称?

来自分类Dev

使用 Hibernate Search 时由于 lucene 锁导致 Spring Boot 集成测试失败

来自分类Dev

Hibernate Search 6中LocalDateTime的范围查询

来自分类Dev

Hibernate Search 中 BigDecimal 的范围查询

来自分类Dev

Hibernate上的内部联接查询-SQL查询当前不支持迭代

来自分类Dev

使用AutoMapper时,此平台不支持IDictionaryFactory

来自分类Dev

使用PyInstaller时不支持的SSH连接

来自分类Dev

使用 GLib 的 GIO API 时不支持 HTTP

来自分类Dev

尝试使用 FFT 卷积时不支持 cuDNN 状态

来自分类Dev

使用 $elemMatch 和 $in 时不支持 Azure CosmosDB 操作

来自分类Dev

如何在Hibernate Search中使用分析器?

来自分类Dev

如何使用Hibernate-Search索引和搜索ENUM类型

来自分类Dev

使用多个关键字进行Hibernate Search的索引搜索

来自分类Dev

使用投影可以提高Hibernate Search索引的构建性能吗?

来自分类Dev

在数据库中搜索文本(使用Hibernate Search)

来自分类Dev

无法使用 Hibernate Search 搜索子实体

Related 相关文章

  1. 1

    Hibernate Search查询类

  2. 2

    Hibernate Search查询类

  3. 3

    使用Hibernate Search查询枚举(枚举)的IndexedEmbedded列表

  4. 4

    尚不支持Hibernate Pure本机标量查询

  5. 5

    使用Hibernate Search / Lucene标记云?

  6. 6

    Hibernate Search:如何正确使用通配符?

  7. 7

    将 EntityGraph 与 Hibernate Search ORM 结合使用

  8. 8

    使用AWS DocumentClient少于次要索引查询时-“不支持查询关键条件”

  9. 9

    尝试使用Jackcess(Java)从Access中读取时出现“不支持的整理排序顺序”

  10. 10

    使用zip()对元组列表进行排序时,有时不支持'<'

  11. 11

    使用hibernate-search-4.1.1.Final.jar进行Hibernate全文搜索,但无法解决类似查询生成器的错误

  12. 12

    如何使用Hibernate Lucene Search进行不区分大小写的排序?

  13. 13

    如何使用Hibernate Lucene Search对挪威字符(case,Ø和Å)进行不区分大小写的排序?

  14. 14

    如何使用Hibernate Lucene Search访问实体中外键的排序字段名称?

  15. 15

    使用 Hibernate Search 时由于 lucene 锁导致 Spring Boot 集成测试失败

  16. 16

    Hibernate Search 6中LocalDateTime的范围查询

  17. 17

    Hibernate Search 中 BigDecimal 的范围查询

  18. 18

    Hibernate上的内部联接查询-SQL查询当前不支持迭代

  19. 19

    使用AutoMapper时,此平台不支持IDictionaryFactory

  20. 20

    使用PyInstaller时不支持的SSH连接

  21. 21

    使用 GLib 的 GIO API 时不支持 HTTP

  22. 22

    尝试使用 FFT 卷积时不支持 cuDNN 状态

  23. 23

    使用 $elemMatch 和 $in 时不支持 Azure CosmosDB 操作

  24. 24

    如何在Hibernate Search中使用分析器?

  25. 25

    如何使用Hibernate-Search索引和搜索ENUM类型

  26. 26

    使用多个关键字进行Hibernate Search的索引搜索

  27. 27

    使用投影可以提高Hibernate Search索引的构建性能吗?

  28. 28

    在数据库中搜索文本(使用Hibernate Search)

  29. 29

    无法使用 Hibernate Search 搜索子实体

热门标签

归档