当前位置: 首页 > 知识库问答 >
问题:

基于Lucene表达式的弹性搜索top_hits聚集

慕容安易
2023-03-14

我想做一个字段折叠热门点击聚合,正如这里所记录的:

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-top-hits-aggregation.html#_field_collapse_example

特别是,这一部分是一个问题:

"top_hit": {
    "max": {
        "script": "_score"
    }
}

因为生产环境配置有:

script.disable_dynamic: sandbox

这意味着我不能使用groovy脚本,否则会出现以下错误:

nested: ScriptException[dynamic scripting for [groovy] disabled];

如果我这样更改查询:

"top_hit": {
    "max": {
        "lang": "expression",
        "script": "_score"
    }
}

我遇到了不同类型的错误:

nested: IllegalStateException[Expressions referencing the score can only be used for sorting];

弹性搜索版本为1.5.2。有没有一种方法可以实现我想要的(使用lucene表达式)?

共有1个答案

邹宣
2023-03-14

我在谷歌上搜索了一下才找到答案。这是一个已修复的已知问题。

https://github.com/elastic/elasticsearch/issues/10091

然而,尚不清楚它被固定在哪个版本中。

 类似资料:
  • 我知道这里提到的弹性搜索和Lucene的区别。 Lucene和Elasticsearch有什么不同 弹性搜索除了可扩展性、容错性和分布性之外,两者的核心区别是什么。 弹性搜索提供了比Lucene更好的搜索功能吗?

  • 我正在使用带有ElasticSearchJavaAPI的日期直方图聚合,它非常适合简单的聚合,例如每小时/天/月/年的命中视频数(想象一系列文档,其中日期直方图聚合是在“indexed_date”字段中进行的)。 但是,我可以通过一个查询,相对于另一个字段进行多字段日期聚合吗?就像Kibana对图表所做的那样。 我想实现的一个例子: 我有一系列文档,其中每一个都是一个“事件”,有它的时间戳。这些文

  • 我正在开发JSF项目并将Elastic Search与本机JavaApi(不是Jest)一起使用。我在elasticsearch索引映射中为高级全文搜索定义了分析器和nGram过滤器。如何使用java api进行此查询定义?

  • 我对弹性搜索完全陌生。我在试着从弹性搜索中取记录。 我查了文件,但找不到任何解决办法。如果你在这里给我一些提示或一些网站,我可以解决我的问题,我将非常感谢。

  • 我已经为一个问题挣扎了一段时间,所以我想我应该通过stackoverflow来解决这个问题。 “我的文档类型”有一个标题、一个语言字段(用于筛选)和一个分组id字段(我省略了所有其他字段以保持重点) 搜索文档时,我希望找到包含标题中文本的所有文档。对于每个唯一的分组id,我只需要一个文档。 我一直在关注tophits聚合,从我所看到的情况来看,它应该能够解决我的问题。 对我的索引运行此查询时: 我